码迷,mamicode.com
首页 > 其他好文 > 详细

day①:文件操作

时间:2015-12-29 19:14:37      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

#模式

# 模式:
读 ‘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()

 

[root@monitor shell]# cat mytest.txt
This is first line
second line
thrid line[root@monitor shell]#

 

修改内容:

原文件:/shell/mytest.txt

[root@monitor 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()

 

 

修改后:

[root@monitor 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)

[root@monitor shell]# cat mytest.txt
This is first line
second line
thrid line
fouth line
--my test fifth---
nimeide line

 

day①:文件操作

标签:

原文地址:http://www.cnblogs.com/binhy0428/p/5086629.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!