文件操作无非两个,即:读、写
python 2.x:
文件句柄 = file('文件路径', '模式')
python3.x:
文件句柄 = open('文件路径', '模式')
打开文件的模式有:
- r,只读模式(默认)。
- w,只写模式。【不可读;不存在则创建;存在则删除内容;】
- a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
- r+,可读写文件。【可读;可写;可追加】
- w+,写读,会把源文件清空,慎用
- a+,同a
"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
- rU
- r+U
"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
- rb
- wb
- ab
常用方法:
read
# 一次性加载所有内容到内存obj.read()
write
f = open('log.txt','w',encoding='utf8')f.write('hell,kitty1')f.flush()f.close()
readline 每次仅读一行
f = open('log.txt','r',encoding='utf8')print(f.readline())print(f.readline())#输出结果:你好hello,worldhello
readlines
# 一次性加载所有内容到内存,并根据行分割成字符串并组成一个列表obj.readlines()
f = open('log.txt','r',encoding='utf8') print(f.readlines()) #输出结果: ['你好hello,world\n', 'hello']
seek 移动指针位置,按照字节来移动
tell 读取指针位置
f = open('log.txt','r',encoding='utf8')f.seek(3)print(f.tell())#输出结果3
close 关闭句柄
f = open('log.txt','r',encoding='utf8')print(f.read(2))f.close()
with open(文件名,打开方式) as xxx
此方法的好处是不需要再单独关闭句柄。