一.文件的打开与操作
1.文件的打开
文件的打开有许多种模式,如'r'(以只读方式打开) , 'r+'(打开一个文件用于读写) , 'w'(打开一个文件只用于写入),'w+'(打开一个文件用于读写),'a'(打开一个文件用于追加),'a+'(打开一个文件用于追加并读取),这些模式都是以字符串的方式打开
而如'rb','wb','ab','wb+',这些模式都是以二进制的方式打开,可用于爬虫
拿'r'举例
#打开文件
f = open('test.txt','r')
#读取内容
print(f.read())#可读取test.txt内的内容
#关闭文件
f.close
2.文件操作
文件的操作方式有read,werite,readline,readlines,writeline,writelines,tell(获取指针位置),seek(调整指针位置),flush
拿read与write举例
f = open('文件test.txt','w+')
f.write('hello world')#写入
print(f.tell())#可以看到指针在末尾
f.seek(0)#调整指针位置到0
print(f.tell())#可以看到指针位置在最前面,此时可打印文件全部内容
print(f.read())
f.close()
3.with open(文件名,'打开方式') as 变量名
此方式可自动关闭文件
如:
with open('文件test.txt','w+') as f:
print(f.read())
f.writelines(['1\n','2','3'])#writelines与readlines分别以列表的方式写入与写出
f.seek(0)
print(f.read())
4.编码处理
with open(r'test2.txt','w',encoding='utf-8') as f:
f.write('哈哈......')#通过utf-8的方式写入
with open(r'test2.txt',encoding='ascii',errors='ignore') as f1:
print(f1.read())#通过ascii的方式读取,用errors='ignore'的方式忽略报错,则输出'......'
二.临时文件
有StringIO(临时字符串文件)与BytesIO(临时存二进制的文件)两种临时文件
import io
a = io.StringIO()#创建临时字符串文件
a.write('hello python')
a.seek(0)
print(a.read())
a.close()#此时临时文件不存在了
BytesIO与StringIO操作方式类同,可通过b'字符串'将字符串转为二进制