#模式
# 模式:
读 ‘r‘
写[清空整个文件] ‘w‘
追加[文件需要存在] ‘a‘
读写 ‘r+‘
二进制文件 ‘b‘ ‘rb‘,‘wb‘,‘rb+‘
#文件对象方法
file.close() # 关闭文件
file.fileno() # 返回文件的描述符
file.flush() # 刷新文件的内部缓冲区
file.isatty() # 判断file是否是一个类tty设备
file.next() # 返回文件的下一行,或在没有其他行时引发StopIteration异常
file.read(size=-1) # 从文件读取size个字节,当未给定size或给定负值的时候,读取剩余的所有字节,然后作为字符串返回
file.readline(size=-1) # 从文件中读取并返回一行(包括行结束符),或返回最大size个字符
file.readlines(sizhint=0) # 读取文件的所有行作为一个列表返回
file.xreadlines() # 用于迭代,可替换readlines()的一个更高效的方法
file.seek(off, whence=0) # 在文件中移动文件指针,从whence(0代表文件起始,1代表当前位置,2代表文件末尾)偏移off字节
file.tell() # 返回当前在文件中的位置
file.truncate(size=file.tell()) # 截取文件到最大size字节,默认为当前文件位置
file.write(str) # 向文件写入字符串
file.writelines(seq) # 向文件写入字符串序列seq;seq应该是一个返回字符串的可迭代对象
读文件
open()和file(),别名关系,随你喜欢用哪个
read(),一次性读取文件的全部内容,可以指定read(size),每次最多读取size字节的内容
readline(),每次读取一行内容
readlines(),一次读取所有内容并按行返回列表
>>> f = open(‘/python/test.txt‘,‘r‘) Traceback (most recent call last): File "<stdin>", line 1, in <module> IOError: [Errno 2] No such file or directory: ‘/python/test.txt‘ #不存在会报错 >>> f = open(‘/shell/test.txt‘,‘r‘) >>> f.read() ‘nimeide !!!!!!!!\n‘ >>> f.close() >>> with open(‘/shell/test.txt‘,‘r‘) as f: #自动帮你close() ... print f.read() ... nimeide !!!!!!!! ^ >>> f=file(‘/shell/test.txt‘,‘r‘) >>> for line in f.readlines(): ... print (line.strip()) ... nimeide !!!!!!!!
写文件:
write
writelines,参数需为一个列表,将一个列表的每个元素都写入文件
>>> f=file(‘/shell/mytest.txt‘,‘w‘) >>> f.write(‘This is first line\n‘) >>> f.write(‘second line\n‘) >>> f.close()
追加:
>>> f =file("/shell/mytest.txt","a") >>> f.write("thrid line") >>> f.close()
[[email protected] shell]# cat mytest.txt
This is first line
second line
thrid line[[email protected] shell]#
修改内容:
原文件:/shell/mytest.txt
[[email protected] shell]# cat mytest.txt
This is first line
second line
thrid line
fouth line
fifth line
nimeide line
>>> new_f = file(‘/shell/mynew_file_update.txt‘,‘w‘) >>> f = file(‘/shell/mytest.txt‘,‘r‘) >>> for line in f: ... if ‘fifth‘ in line: ... line=line.replace(line,‘--my test fifth---\n‘) ... new_f.write(line) ... >>> f.close() >>> new_f.close()
修改后:
[[email protected] shell]# cat mynew_file_update.txt
This is first line
second line
thrid line
fouth line
--my test fifth---
nimeide line
最后:
>>> import os >>> os.rename(‘/shell/mynew_file_update.txt‘,‘/shell/mytest.txt‘)
[[email protected] shell]# cat mytest.txt
This is first line
second line
thrid line
fouth line
--my test fifth---
nimeide line