Python学习笔记之:文件基本操作

来源:互联网 发布:centos 文件夹扩容 编辑:程序博客网 时间:2024/05/16 02:50

打开文件

open(name[, mode[, buffering]])

读写文件

如果有一个名为f的类文件对象,那么就可以用f.write方法和f.read方法写入和读取数据。每次调用f.write(string)时,所提供的参数string会被追加到文件中已存在部分的后面。

f = open('somefile.txt', 'w')f.write('Hello, ')f.write('World!')f.close()

读取很简单,只要记得告诉流要读多少字符(字节)即可。

f = open('somefile.txt', 'r')f.read(4) # 'Hell'f.read() # read the rest of the file

可以使用file.readline读取单独的一行(从当前的位置开始直到一个换行符出现,也读取这个换行符)。不使用任何参数(这样,一行就被读取和返回)或者使用一个非负的整数作为readline可以读取的字符(或字节)的最大值。
readlines可以读取一个文件中的所有行并将其作为列表返回。
writelines方法和readlines相反,传给它一个字符串的列表(实际上任何序列或者可迭代的对象都行),它会把所有的字符串写入文件(或流)。注意,程序不会增加新行,需要自己添加。没有writeline方法,因为能使用write。

关闭文件

close()

对文件内容进行迭代

按字节处理

f = open(filename)char = f.read(1)while char:  process(char)  char = f.read(1)
f = open(filename)while True:  char = f.read(1)  if not char: break  process(char)

按行操作

f = open(filename)while True:  line = f.readline()  if not line: break  process(line)

读取所有内容

如果文件不是很大,那么可以使用不带参数的read方法一次读取整个文件(把整个文件当作一个字符串来读取),或者使用readlines方法(把文件读入一个字符串列表,在列表中每个字符串就是一行)。

f = open(filename)for char in f.read():  process(char)
f = open(filename)for line in f.readlines():  process(line)

文件迭代器

文件对象是可以迭代的,这就意味着可以直接在for循环中使用它们,从而对它们进行迭代。

f = open(filename)for line in f:  process(line)
原创粉丝点击