#你需要读写各种不同编码的文本数据,比如ASCII,UTF-8,UTF-16等,使用带有rt的open()函数读写文本文件
with open('somefile.txt','rt') as f:
    data = f.read()
with open('somefile.txt','rt') as f:
    for line in f:
        pass  
#类似,为了写入一个文本文件,使用带有wt模式的open()函数,如果之前文件内容存在则清除并覆盖掉
with open('somefile.txt','wt') as f:
    f.write('hello')
    f.write('world')
    
with open('somefile.txt','wt') as f:
    print('hell0',file=f)   #将输出重定向到文件中
    print('worlf',file=f)
#若为已经存在文件中添加内容,使用模式为at的open()函数
#文件的读写操作默认使用系统编码,可以通过调用sys.getfaultencoding()来得到。大多数机器上是utf-8.
#如果你已经知道你要读写的文本是其他编码方式,那么可以通过传递一个可选的encoding参数给open()函数
with open('somefile.txt','rt',encoding='latin-1') as f:
    pass
#Python 支持非常多的文本编码。几个常见的编码是 ascii, latin-1, utf-8 和 utf-16。
#在 web 应用程序中通常都使用的是 UTF-8。 ascii 对应从 U+0000 到 U+007F 范围内
# 的 7 位字符。 latin-1 是字节 0-255 到 U+0000 至 U+00FF 范围内 Unicode 字符的直
# 接映射。当读取一个未知编码的文本时使用 latin-1 编码永远不会产生解码错误。使用
# latin-1 编码读取一个文件的时候也许不能产生完全正确的文本解码数据,但是它也能
# 从中提取出足够多的有用数据。同时,如果你之后将数据回写回去,原先的数据还是会
# 保留的。
#使用with语句给被使用到的文件创建了一个上下文环境,但with控制块结束时,文件会自动关闭。也可以不使用with,但需要手动关闭
f=open('somefile.txt','rt')
data=f.read()
f.close()
#关于换行符,unix和windows不一样(分别是\n和\r\n),默认python会以统一模式处理换行符。
#若不希望这种默认处理方式,可以给open()函数传入参数newline=''
with open('somefile.txt','rt',newline='') as f:
    pass

python cookbook 5.1 读写文本数据

python cookbook 5.1 读写文本数据

python cookbook 5.1 读写文本数据

相关文章: