Python之读写文本数据

知识点不多

普通操作

# rt 模式的 open() 函数读取文本文件
# wt 模式的 open() 函数清除覆盖掉原文件,write新文件
# at 模式的 open() 函数添加write新文件
with open("../../testData","rt",encoding="utf-8") as f :
    for line in f :
        print(line)

# 写操作默认使用系统编码,可以通过调用 sys.getdefaultencoding() 来得到,也以通过传递一个可选的 encoding 参数给open()函数,几个常见的编码是ascii, latin-1, utf-8和utf-16
# 关于换行符的识别问题:在Unix和Windows中是不一样的(分别是 \n 和 \r\n )。 默认情况下,Python会以统一模式处理换行,识别普通换行符并将其转换为单个 \n 字符
# 如果你不希望这种默认的处理方式,可以给 open() 函数传入参数 newline=‘‘
f =open(‘somefile.txt‘, ‘rt‘, newline=‘‘)

# 最后一个问题就是文本文件中可能出现的编码错误
# 如果修改了编码方式之后,编码错误还是存在的话,你可以给 open() 函数传递一个可选的 errors 参数来处理这些错误。
m = open(‘sample.txt‘, ‘rt‘, encoding=‘ascii‘, errors=‘replace‘)

# 如果你经常使用 errors 参数来处理编码错误,也是不好的。
# 原则是确保你总是使用的是正确编码。当模棱两可的时候,就使用默认的设置(通常都是UTF-8)。
打印输出至文件中
with open(‘../../testData‘, ‘at‘) as f:
    print(‘Hello python!‘, file=f)

# 使用其他分隔符或行终止符打印
# 使用 print() 函数输出数据,但是想改变默认的分隔符或者行尾符,使用sep  end
print("hello","cool","zzy",sep="***",end="!")   # hello***cool***zzy!

#使用  str.join()
print("***".join(("hello","cool","zzy")))  # hello***cool***zzy

# 对比
row = ("hello","cool","zzy")
print(*row,sep="***")   # hello***cool***zzy
读写字节数据
# 读写二进制文件,比如图片,声音文件,使用模式为 rb 或 wb 的 open() 函数

# 在读取二进制数据的时候,字节字符串和文本字符串的语义差异可能会导致一个潜在的陷阱:索引和迭代动作返回的是字节的值而不是字节字符串
a=‘Hello World‘
print(a[0])   # H

b = b‘Hello World‘  # Byte string
print(b[0])  # 72  索引和迭代动作返回的是字节的值而不是字节字符串

# 如果你想从二进制模式的文件中读取或写入文本数据,必须确保要进行解码和编码操作
# 解码
with open("../../testDta","rb") as f :
    data=f.read(16)
    text=data.decode("utf-8")

# 编码
with open("../../testDta","wb") as d :
    text="hello"
    f.write(text.encode("utf-8"))

原文地址:https://www.cnblogs.com/zzy-9318/p/10497428.html

时间: 2024-11-06 17:22:23

Python之读写文本数据的相关文章

背水一战 Windows 10 (89) - 文件系统: 读写文本数据, 读写二进制数据, 读写流数据

[源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 文件系统 读写文本数据 读写二进制数据 读写流数据 示例1.演示如何读写文本数据FileSystem/ReadWriteText.xaml <Page x:Class="Windows10.FileSystem.ReadWriteText" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x

读写文本数据

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px Helvetica; color: #29556f } 使用其他分隔符或行终止符打印 问题: 你想使用print() 函数输出数据,但是想改变默认的分隔符或者行尾符. 解决方案: 可以使用在print() 函数中使用sep 和end 关键字参数,以你想要的方式输出.比如: 1 #正常输出 2 print('dmeon', 89 , 8, 23) 3 4 #指定分隔符, 5 print('dm

菜鸟利用python处理大文本数据的血泪路

1. 源数据 Like this: 格式: .csv和.txt 内容:(几十万行) 大小:64.7M 和64.8M 电脑:i5-2540M 4G内存 2.数据更新检测: 这是一些位置信息图,1和2分别是同一地区不同时期采集的数据,现检测更新的信息.假使以NDP_ID这列数据作为POI的唯一标志码.设定: 如果NDP_ID同时在两个文件中都存在,则判定为没有改变 如果NDP_ID只存在于1文件中,则判定为信息删减了 如果NDP_ID只存在于2文件中,则判定为信息增加了 3.代码主要包括三部分: -

Python下载网络文本数据到本地内存的四种实现方法示例

reference: https://blog.csdn.net/john_bian/article/details/71025372?utm_source=itdadao&utm_medium=referral import urllib.request import requests from io import StringIO import numpy as np import pandas as pd ''' 下载网络文件,并导入CSV文件作为numpy的矩阵 ''' # 网络数据文件

【转】Python数据类型之“文本序列(Text Sequence)”

[转]Python数据类型之“文本序列(Text Sequence)” Python中的文本序列类型 Python中的文本数据由str对象或字符串进行处理. 1.字符串 字符串是Unicode码值的不可变序列.字符串字面量有多种形式: 单引号:'允许嵌入"双"引号' 双引号:"允许嵌入'单'引号" 三引号:'''三个单引号''', """三个双引号""" 说明: a) 三引号的字符串可以跨越多行,所关联的空

python里读写excel等数据文件的几种常用方式

python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv.txt等).excel文件.数据库文件.api等. 下面整理下python有哪些方式可以读取数据文件. 1. python内置方法(read.readline.readlines) read() : 一次性读取整个文件内容.推荐使用read(size)方法,size越大运行时间越长 readline() :每次读取一行内容.内存不够时使用,一般不太用 readlines() :一次性读取整个文件内容,并按行返回到lis

基础学习总结(三)--文本数据读写文件、SD卡

简单的文本数据写入文件不需要权限,读写SD卡在4.0版本前需要写权限.在4.0后需要读写权限 布局: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android

IO流-文本IO\读写二进制数据

文本IO 一.简述 OutputStreamWriter类使用选定的编码方式吧Unicode字符流转换为字节流,InputStreamReader类将包含字节的输入流转为可以产生Unicode字符的读入器. 例: (1)InputStreamReader in = new InputStreamReader(System.in)让一个输入读入器可以从控制台读入输入并转换为Unicode (2)InputStreamReader in = new InputStreamReader(new Fil

JDBC学习笔记(三)大文本数据的读写

一.用JDBC向数据库插入大文本数据 String sql = "insert into my_clob values (null, ?)"; ps = conn.prepareStatement(sql); File f = new File("D:\\BaiduNetdiskDownload\\mysql\\jdbc.sql"); Reader reader = new BufferedReader(new FileReader(f)); ps.setChara