打开文件:open(name[, mode[, buffering]])返回一个文件对象
若open函数只带一个参数,那么只能从文件中读取内容;若要向文件中写入内容,就需要提供一个模式参数。
open函数使用缓冲可使程序执行效率更快,0,1,-1……
>>> f = open('testfile.txt', 'w')
>>> f.write('Hello, ')
>>> f.write('World')
>>> f.close()
>>> f = open('testfile.txt', '+')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: mode string must begin with one of 'r', 'w', 'a' or 'U', not '+'
>>> f = open('testfile.txt', 'r+')
>>> f.read()
'Hello, World'
换行符:\r(Mac),\r\n(windows), \n(os.linesep)
为防止打开文件进行操作的过程中,程序意外中断而使文件没有关闭,可用如下两种方法避免:
①
#open your file here
try:
#write data to your file
finally:
file.close()
②
with open("somefile.txt") as somefile:
do_something(somefile)
对文件进行按行处理:
f = open(filename)
while True:
line = f.readline()
if not line: break
process(line)
f.close()
使用fileinput的方式:
import fileinput
for line in fileinput.input(filename):
process(line)
read: 读取整个文件
readline:读取下一行
readlines:读取整个文件到一个迭代器以供我们遍历
writelines