Python温习(一) —— IO读取
作者:互联网
读取文件
路径问题
1、在路径前面
加r
,即保持字符原始值的意思
sys.path.append(r'G:/Python_programing/IO/test.txt')
2、替换为
双反
斜杠
sys.path.append('G:\Python_programing\IO\test.txt')
3、替换为
正
斜杠
sys.path.append('G:/Python_programing/IO/test.txt')
测试示例
# example 1
f = open('G:/Python_programing/IO/test.txt','r') # 文件路径符号为/ !!!
print(f.read())
f.close()
# example 2
# 由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用,
# 故建议使用try ... finally来实现文件的读取和关闭
try:
f = open('G:/Python_programing/IO/test.txt', 'r')
print(f.read())
finally:
if f:
f.close()
# example 3
# 引用with语句,自动帮调用close()方法
with open('G:/Python_programing/IO/test.txt', 'r') as f:
print(f.read())
关于文件读取API函数的选择
- 调用read()会一次性读取文件的全部内容;考虑到内存问题,可以反复调用read(size)方法,每次最多读取size个字节的内容;
- 调用readline()可以每次读取一行内容
- 调用readlines()一次读取所有内容并按行返回list;
二进制
二进制文件
读取二进制文件(图片、视频等) 用'rb'模式打开文件即可
测试示例
f = open('G:/Python_programing/IO/test.jpg', 'rb') # 超大
print(f.read()) # 十六进制表示的字节
字符编码
字符编码规范文件
读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取GBK编码文件
f = open('G:/Python_programing/IO/gbk.txt','r',encoding='gbk')
s = f.read()
print(s)
f.close()
字符编码不规范文件
open()函数可接收一个errors参数,表示如果遇到编码错误后 --- 如何处理,最简单的方式是直接忽略
f = open('G:/Python_programing/IO/gbk.txt', 'r', encoding='gbk', errors='ignore')
写文件
#example 1
f = open('G:/Python_programing/IO/test.txt', 'w')
f.write('Hello, world!')
f.close()
#务必要调用f.close()来关闭文件 --- 写文件时,操作系统不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入
#example 2
with open('G:/Python_programing/IO/test.txt', 'w') as f:
#以'w'模式写入文件时,如果文件已存在,会直接覆盖(相当于删掉后新写入一个文件)
f.write('+1')
# 追加末尾
with open('G:/Python_programing/IO/test.txt', 'a') as f:
f.write('+2')
# 模式 描述
# t 文本模式 (默认)。
# x 写模式,新建一个文件,如果该文件已存在则会报错。
# b 二进制模式。
# + 打开一个文件进行更新(可读可写)。
# U 通用换行模式(Python 3 不支持)。
#
# r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
# rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
# r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
# rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
#
# w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
# wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
# w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
# wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
#
# a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
# ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
# a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
# ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写
标签:文件,Python,IO,温习,txt,open,programing 来源: https://www.cnblogs.com/winz/p/14799214.html