标签:python文件操作
Python实现文件的操作:
读写一个文件之前需要打开它:
fileobj = open(filename, mode)
open()调用参数的解释:
* fileobj是open()返回的文件对象;
* filename是该文件的字符串名;
* mode是指明文件类型和操作的字符串
mode :
* r 只读模式(默认)
* w 只写模式(不可读,不存在则新创建;存在则重写新内容;)
* a 追加模式(可读,不存在则新创建;存在则只追加内容;)
"+" 表示同时读写某个文件:
* r+ 可读写文件(可读;可写;可追加)
* w+ 写读
* a+ 同a
* b代表二进制文件
eg:写文件
conten = ‘‘‘Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested.‘‘‘ fout = open("file.txt", "w") fout.write(conten) fout.close()
如果源字符串比较大,可以将数据进行分块,直到所有字符被写入:
fout = (, ) size = (conten) offset = chunk = : offset > size: fout.write(conten[offset:offset+chunk]) offset += chunk fout.close()
***使用read()、readline()、readlines()读文件本文件:
不带参数的read()函数一次读入文件的所有内容,在读入文件时注意,2G的文件会用到相同大小的内存
f = (, ) ct = f.read() f.close() ((ct))
可以设置最大的读入字符数限制read()函数一次返回的大小。
ct = chunk = f = (, ) : fragment = f.read(chunk) fragment: ct += fragment f.close() (ct)
readline()每次读入文件的一行,通过追加每一行拼接成原来的字符串:
ct = chunk = f = (, ) : line = f.readline() line: ct += line f.close() (ct)
或 f = open("file.txt", "r") while True: line = f.readline() if not line: break print(line,end="") f.close()
当文件读取结束后,readline()、read()同样会返回空字符串,即被判为False.
函数readlines()调用时每次读取一行,并返回单行字符串的列表:
f = (, ) lines = f.readlines() f.close() ((lines), ) line lines: (line,=)
使用write()写二进制文件:
bdata = ((,)) ((bdata)) fout = (, ) fout.write(bdata) fout.close()
使用read()读二进制文件:
fin = (, ) rbdata = fin.read() ((rbdata)) fin.close()
使用with自动关闭文件(with expression as variable:):
ct = (, ) fout: : line = fout.readline() line: ct += line (ct)
或同时对多个文件进行上下文管理:
(, ) fout, (, ) fout1:
*** 使用seek()改变位置
函数tell()返回距离文件开始处的字节偏移量,函数seek()允许跳转到文件其它字节偏移量的位置,即可以不用从头读取文件的每一个字节,直接跳到指定的位置
fin = (, ) (fin.tell()) fin.seek() (fin.tell())
标签:python文件操作
原文地址:http://13292979.blog.51cto.com/13282979/1966142