r模式:默认模式,文件不存在则报错
f=open('a.txt',encoding='utf-8') # 打开方式为utf-8,操作系统默认为gbk,以什么编码存的就以什么编码打开,前提是有这个文件,不然报错
print('first-read:',f.read()) # read 全读,读完光标就在最后一个字符后,后面如还有读操作,就什么也读不出了
print('seconde-read:',f.read()) # 跟在read后,什么也读不出来了
print(f.readline(),end=' ') # 一行一行的读出来,后面不写end=' ',那么会隔一行
print(f.readlines()) # 是把所有内容按行读出来存到一个列表里
w模式:文件不存在则创建,文件存在则覆盖
f=open('a.txt','w',encoding='utf-8') # w模式:是以写的方式打开,如有这个文件就会清空写入(覆盖),如没有就会创建一个文件写入
f.write('111111') # 写入必须是以字符串类型
f.write('22222') # 这样会追加到111111的后面,不会写在下一行,那么就都得加上换行符如:f.write('22222\n')
f.writelines(['1111\n','2222\n']) # 以列表的形式写入
f.close() # 操作文件完后就得关闭文件
a模式:文件不存在则创建,文件存在不会覆盖,写内容是以追加的方式写入
f=open('a.txt','a',encoding='utf-8')
f.write('\n3333\n')
f.close()
其他方法:
f=open('a.txt','r',encoding='utf-8')
f.write('asdfasdf')
f.flush() # 把内存数据刷到硬盘
print(f.cloosed) #判断文件是否关闭
print(f.name,f.encoding) #查看文件名字和文件编码
print(f.readable()) #判断文件是否可读
print(f.writable()) #判断文件是否可写
f.read() #以字符读取,其余的文件内光标移动都是以字节为单位如:seek,tell,truncate
f=open('a.txt','rb')
print(f.read()) # 读出来的是bash格式
print(f.read().decode('utf-8')) #转成utf-8
f=open('a.txt','wb')
f.write('asdfasdf'.encode('utf-8')) # 字符串是unicode需要转码
f.close
图片的读写
read_file=open('a.jpg','rb')
write_file=open('a.copy.jpg','wb')
write_file.write(read_file.read())
import os
read_f=open('a.txt','r',encoding='utf-8')
write_f=open('.a.txt.swp','w',encoding='utf-8')
for line in read_f:
if '你好' in line:
line=line.replace('你好','888888')
write_f.write(line)
else:
write_f.write(line)
read_f.close()
write_f.close()
os.remove('a.txt')
os.rename('.a.txt.swp','a.txt')