Python——文件处理及其相关函数
无论读还是写,都必须是字符串
读模式
1、
假设目前有一个py文件名为:文件处理,打开只读操作为:
f = open(‘文件处理’,‘r’,encoding=‘utf-8’) //如果不写‘r’,默认的是只读模式
data = f.read()
print(data)
f.close()
如果不指定编码,默认为GBK;最后必须都得有close()关闭处理
2、
f.readable() //该文件是否可读,返回的是布尔值
f.readline() //一次只读一行,默认会换行
print(f.readline(),end=’’) //一次只读一行,加了个end,end为空,则不会换行
当用了read()方法后,已经全部读完,再执行readline()方法,则什么都显示不出来,因为已经读完
写模式
1、
f = open(‘文件处理’,‘w’,encoding=‘utf-8’) //如果文件不存在,则创造一个新的文件;如果文件存在,则会清空原有内容
2、
f.write(‘111111111’)
f.write(‘22222222’) // 最终显示的结果为2接在1的后面,默认不换行,需要手动添加
f.writable() // 显示是否可写
f.writeline([‘xxx’]) // 以列表的形式写
追加模式
1、
f = open(‘文件处理’,‘a’,encoding=‘utf-8’) // 可读可写,以追加的方式写,写在文件最后
+模式
1、r+模式: 读写(可读可写)
f = open(‘文件处理’,‘r+’,encoding=‘utf-8’)
data = f.read()
print(data)
f.write(‘写入qqq’)
f.close() //直接写在文件内容的最后
如果上来就直接写模式:
f = open(‘文件处理’,‘r+’,encoding=‘utf-8’)
f.write(‘写入qqq’) //写在光标处
另外一种打开文件处理模式
with open(‘a.txt’,‘w’) as f:
f.write(‘111’) //以这种方式进行文件处理结尾不需要close()方法
with open(‘xxx’,‘r’,encoding=‘gbk’)as src_f,\ // 代码过长换行需要\
open(‘xxx_new’,‘w’,encoding=‘gbk’)as dst_f:
data=src_f.read();
dst_f.write(data) //从源文件读到数据再原封不动的写到新文件当中
rb/wb/xb/ab 模式
**1、b模式下处理的都是二进制,不能指定编码(指open()操作)
2、因为open()没有指定编码,在wb下的write()操作需要指定编码 **
1、flush():刷新。输入的内容需要执行此函数后才能看见
2、isatty():是否是终端设备
3、tell():光标当前所在位置(换行符也算)
4、newline():不同系统的换行符不同,编译软件会统一为\n,此时需要newline函数还原本来的换行符
用法: f=open(‘b.txt’,‘r’,encoding=‘utf-8’,newline=’ ')
newline函数=空,可以还原为本来的换行符
5、seek(xx,xx):控制光标所在位置(只输一个参数为默认模式)
有三种模式:
1、seek(xx,0):默认模式,从开头算起
2、seek(xx,1):相对位置,从上一个光标位置算起
3、seek(xx,2):从结尾算起(想要倒序第一个参数要为负数)
注意:只有read()方法是以字符为单位,其他方法都是以字节为单位
6、truncate(xx,xx):截取。只输一个参数则是从开头到输入参数所在的位置
注意:文件必须以写方式打开,不能用在W和W+方法上,其他方法都可以。因为W模式下会清空文件内容。