文件操作
文件操作:
1 f1 = open('demo.txt')#如果文件不存在则报错
2 f2 = open('demo','w')#如果没有此文件则新建demo文件
3 f2.close()#关闭文件
4 f2.closed#如果此文件正在打开 返回False 如果文件没有被打开则返回True
5 f2.encoding#显示文件打开的编码方式(与源文件以什么方式便如何存放在硬盘上无关)
6 f2.flush()#刷新内容
7 f2.flush()#是否是终端设备
8 f2.name#文件名
9 f2.tel()l#光标所在位置 返回一个数 即光标位置(注意换行的\r\n共为两个字节 汉字为三个字节)首先执行f2.readline() 则返回值为大于0的数值 直接执行返回值为0
10 f2.open('demo','r',encoding='utf-8',newline='')#显示换行后面的\r\n
11 f2.seek(x)#控制光标移动到x位置 如果出现汉字有可能会报错---->seek的数值不对
12 f2.read()#读取字节 *****除了read方法读取字节 其余的以字节方式读取seek
13 f2.truncate(x)#截取x个字节
1 f1 = open('demo','w',encoding='utf-8')#写文件 w模式打开直接覆盖demo.txt 以utf-8形式从硬盘上翻译出来
2 f2 = open('demo','r',encoding='gbk')#读文件 demo.txt格式,gbk
3 f3 = open('demo','a',encoding='gbk')#写文件 在demo.txt后面追加内容
4 f4 = open('demo','a+',encoding='gbk')#以追加的方式读写文件
5 f5 = open('demo','r+',encoding='gbk')#读写文件,从光标处覆盖文件内容 添加新内容
6 f6 = open('demo','w+',encoding='gbk')#写读模式
1 读文件:
2
3 f = open('demo.txt',encoding='utf-8')
4 #res1 = f.read()
5 res2 = f.readline()
6 res3 = f.readlines()
7 #print(res1)
8 print(res2) #读取部分文件时不能在前面操作read() 否则读取文件为空
9 print(res3)
10 print(f.readable())#表示文件可读
11 f.close()
12
13
14 写文件:
15
16 file = open('demo.txt','w',encoding='utf-8')
17 #ref = file.write('**********')#直接覆盖demo.txt文件
18 print(ref)
19 file.close()
20
21 读写以及重命名:
22
23 with open('z.txt','r',encoding='utf-8') as zzz,\
24 open('zz.txt','w',encoding='utf-8') as zzz2:
25 data = zzz.read()
26 zzz2.write('打开z.txt文件 只读 重命名为zzz并且打开zz.txt 只写 重命名(as)为zzz2;读取zzz.txt的内容 写内容给zzz.txt')
字节B方式与文件:
1:(ab)
1 #f = open('demo.txt','rb',encoding='utf-8')#binary mode doesn't take an encoding argument 指定编码方式为二进制 不能以utf-8编码
2 f = open('字节方式与文件.txt','rb')#---以二进制的形式编码
3 f1 = f.read()
4 print(f1)
5 print(f1.decode('utf-8'))#解码以UTF-8的形式
6 f.close()
2:(wb)
字符串转换成bytes类型:
1 f = open('字节方式与文件','wb')
2 f1 = f.write(bytes('111112222\n',encoding='utf-8'))#转换字符串为bytes类型 编码为(encode)
3 f2 = f.write('111213513311\n'.encode('utf-8'))#效果同上
4 f.close()
3:(ab)
1 #'ab':在结尾追加要write的内容
2 f = open('字节方式与文件','ab')
3 f.write('sdjaskfnsdl'.encode('utf-8'))