1. 打开文件,创建文件对象。
f = open(文件名,模式)
最常用的模式有:
"r" # 只读
“w” # 写入
2. 文件对象的方法:
读取方法:
content = f.read(N) # 读取N bytes的数据,缺省时读入所有行
content = f.readline() # 读取一行
content = f.readlines() # 读取所有行,储存在列表中,每个元素是一行。
read()、.readline() 和 .readlines(),每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。 read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。
readline() 和 readlines() 非常相似。它们都在类似于以下的结构中使用:
test.txt中保存以下内容:
you are beautiful!
I am NO.1
>>>f=open(r'd:\test.txt','r')
>>>for line in f.readlines():
print line,
you are beautiful!
I am NO.1
之间的差异是后者一次读取整个文件,象 .read()一样。.readlines()自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for... in ... 结构进行处理。另一方面,.readline()每次只读取一行,通常比 .readlines()慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用.readline()。
写:
writeline()是输出后换行,下次写会在下一行写。write()是输出后光标在行末不会换行,下次写会接着这行写
经过read、readline之后,文件指针会自动移动到当前读取位置的下一个位置,如果需要重新定位文件指针,则需要使用seek函数
seek(arg1,arg2)函数包含2个参数,第二个参数arg2取值为0,1,2,分别表示文件开头,当前位置,文件末尾,arg1指定相对于arg2位置需要移动的字节数。
此外,可以利用tell()函数查看指针在文件中的当前位置(以字节为单位)
现在有test.txt,内容如下:
AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDD
>>>f=open(r'test.txt','r')
>>>f.tell()
0L
>>>f.seek(8,0)
>>>f.tell()
8L
写入方法:
f.write('I like apple') # 将'I like apple'写入文件
关闭文件:
f.close()
3. 循环读入文件:
(该方法已经从Python 3中删除,请尽量避免使用)
for line in file(文件名):
print line
利用file()函数,我们创建了一个循环对象。在循环中,文件的每一行依次被读取,赋予给line变量。
总结:
f = open(name, "r")
line = f.readline()
f.write('abc')
f.close()