Python读写文件方法总结
本文实例总结了Python读写文件方法。分享给大家供大家参考。具体分析如下: 1.open 使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。 file_object = open('thefile.txt') try: all_the_text = file_object.read( ) finally: file_object.close( ) 注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。 2.读文件 读文本文件 input = open('data','r') #第二个参数默认为r input = open('data') 读二进制文件 复制代码 代码如下: input = open('data','rb')
读取所有内容 file_object = open('thefile.txt') try: all_the_text = file_object.read( ) finally: file_object.close( ) 读固定字节 file_object = open('abinfile','rb') try: while True: chunk = file_object.read(100) if not chunk: break do_something_with(chunk) finally: file_object.close( ) 读每行 复制代码 代码如下: list_of_all_the_lines = file_object.readlines( )
如果文件是文本文件,还可以直接遍历文件对象获取每行: for line in file_object: process line 3.写文件 写文本文件 复制代码 代码如下: output = open('data','w')
写二进制文件 复制代码 代码如下: output = open('data','wb')
追加写文件 复制代码 代码如下: output = open('data','w+')
写数据 file_object = open('thefile.txt','w') file_object.write(all_the_text) file_object.close() 写入多行 复制代码 代码如下: file_object.writelines(list_of_text_strings)
注意,调用writelines写入多行在性能上会比使用write一次性写入要高。 在处理日志文件的时候,常常会遇到这样的情况:日志文件巨大,不可能一次性把整个文件读入到内存中进行处理,例如需要在一台物理内存为 2GB 的机器上处理一个 2GB 的日志文件,我们可能希望每次只处理其中 200MB 的内容。 file = open('test.log','r') sizehint = 209715200 # 200M position = 0 lines = file.readlines(sizehint) while not file.tell() - position < 0: position = file.tell() lines = file.readlines(sizehint) 每次调用 readlines(sizehint) 函数,会返回大约 200MB 的数据,而且所返回的必然都是完整的行数据,大多数情况下,返回的数据的字节数会稍微比 sizehint 指定的值大一点(除最后一次调用 readlines(sizehint) 函数的时候)。通常情况下,Python 会自动将用户指定的 sizehint 的值调整成内部缓存大小的整数倍。 file在python是一个特殊的类型,它用于在python程序中对外部的文件进行操作。在python中一切都是对象,file也不例外,file有file的方法和属性。下面先来看如何创建一个file对象: file(name[,mode[,buffering]]) file对象有自己的属性和方法。先来看看file的属性。 closed #标记文件是否已经关闭,由close()改写 file的读写方法: F.read([size]) #size为读取的长度,以byte为单位 F.close() 希望本文所述对大家的Python程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |