加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Python open读写文件

(2009-11-10 17:47:46)
标签:

it

分类: phthon

1.open

使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />file_object = open('thefile.txt')
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />
try:
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" /> all_the_text
= file_object.read( )
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />
finally:
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" /> file_object.close( )

注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。

2.读文件

读文本文件

http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />input = open('data', 'r')
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />
#第二个参数默认为r
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />
input = open('data')

读二进制文件

http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />input = open('data', 'rb')

读取所有内容

http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />file_object = open('thefile.txt')
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />
try:
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" /> all_the_text
= file_object.read( )
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />
finally:
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" /> file_object.close( )

读固定字节

http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />file_object = open('abinfile', 'rb')
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />
try:
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />
while True:
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" /> chunk
= file_object.read(100)
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />
if not chunk:
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />
break
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" /> do_something_with(chunk)
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />
finally:
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" /> file_object.close( )

读每行

http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />list_of_all_the_lines = file_object.readlines( )

如果文件是文本文件,还可以直接遍历文件对象获取每行:
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />for line in file_object:
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" /> process line

3.写文件

写文本文件

http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />output = open('data', 'w')

写二进制文件

http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />output = open('data', 'wb')

追加写文件

http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />output = open('data', 'w+')

写数据

http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />file_object = open('thefile.txt', 'w')
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />file_object.write(all_the_text)
http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />file_object.close( )

写入多行

http://www.cnblogs.com/Images/OutliningIndicators/None.gifopen读写文件" TITLE="Python open读写文件" />file_object.writelines(list_of_text_strings)

注意,调用writelines写入多行在性能上会比使用write一次性写入要高。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
     以写方式打开 (必要时清空)
     以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+      以读写模式打开
w+      以读写模式打开 (参见 w )
a+      以读写模式打开 (参见 a )
rb      以二进制读模式打开
wb      以二进制写模式打开 (参见 w )
ab      以二进制追加模式打开 (参见 a )
rb+     以二进制读写模式打开 (参见 r+ )
wb+     以二进制读写模式打开 (参见 w+ )
ab+     以二进制读写模式打开 (参见 a+ )
a.      Python 2.3 中新增

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有