Python学习2:文件操作

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()

你可能感兴趣的:(Python,python,文件)