文件操作

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')

 

 

 

 

 

posted @ 2017-10-16 13:47  俺老孫  阅读(143)  评论(0编辑  收藏  举报