您的位置:首页 > 编程语言 > Python开发

python对文件的操作

2016-05-06 11:08 786 查看
readlines()方法并不像read()和readline()方法一样返回一个字符串。它会读取所有(剩余)行然后把它们作为一个字符串列表返回。

python2.1中加入了一个新的对象类型用来高效地迭代文件的行:xreadlines对象(可以在xreadlines模块中找到)。调用file.xreadlines()等价于xreadlines.xreadlines(file)。xreadlines()不是一次性读取所有的行,而是每次读取一块,所以用在for循环时可以减少对内存的占用。不过,随着python2.3中迭代器和文件迭代的引入,没有必要再使用xreadlines()方法,因为它和使用iter(file)的效果是一样的,或者在for循环中,使用for
eachLine in file代替它。它来得容易,去得也快。

1. 读取文件

文件为read_it.txt,内容为:



1)按字符读取文件

#按字符读取文件
text_file=open("read_it.txt","r")
print(text_file.read(1))
print(text_file.read(5))
text_file.close()


输出结果为



read()可以从文件中读取指定数量的字符,得到的结果会以字符串的形式返回。每一次read()都会从上次结束的地方开始。

#按字符读取文件
text_file=open("read_it.txt","r")
whole_thing=text_file.read()
print(whole_thing)
text_file.close()
输出结果为



如果不指定字符数,python就会将整个文件以字符串的形式返回。

2)按行读取文件

readline()方法用于读取当前行中的字符。只需给定希望从当前行读出的字符数,它就会以字符串的形式返回结果。如果不设置这个数字,它就会从当前位置一直读取到行末。

text_file=open("read_it.txt","r")
print(text_file.readline())
print(text_file.readline())
print(text_file.readline())
text_file.close()
输出:



注意结果中的那些空行。那是因为该文本文件中的每一行都是以换行符("\n")结束的。

3)将所有行读取为一个列表

另外一种用于按行处理文本文件的方法,即readlines()方法。它会将整个文本文件读取成一个列表,文件中的每行文本将会成为那个列表中的一个字符串元素。

#将所有行读取成一个列表
text_file=open("read_it.txt","r")
lines=text_file.readlines()
print(lines)
for line in lines:
print(line)
输出:



对文件进行循环遍历

可以用for循环直接对文件中的行进行迭代

text_file=open("read_it.txt","r")
for line in text_file:
print(line)
text_file.close()
输出:



循环变量line依次得到了文件中的每一行。循环的第一次迭代获得第一行;第二次迭代获得第二行;依次类推。当希望对文件进行逐行处理时,这就是一种非常简洁的方法。

文本文件访问模式

“r" 读取文本文件。如果文件不存在,python将会给出一个错误。

"w“ 写入文本文件。如果文件已经存在,则会被覆盖掉。如果文件不存在,则会被创建出来。

输出

write()方法的功能与read()和readline()相反。它把含有文本数据或二进制数据块的字符串写入到文件中去。

和readlines()一样,writelines()方法是针对列表的操作,它接受一个字符串列表作为参数,将它们写入文件。行结束符并不会被自动加入,如果需要的话,你必须在调用writelines()前给每行结尾加上行结束符。

注意这里并没有writeline()方法,因为它等价于使用以行结束符结尾的单行字符串调用write()方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: