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)按字符读取文件
输出结果为
read()可以从文件中读取指定数量的字符,得到的结果会以字符串的形式返回。每一次read()都会从上次结束的地方开始。
如果不指定字符数,python就会将整个文件以字符串的形式返回。
2)按行读取文件
readline()方法用于读取当前行中的字符。只需给定希望从当前行读出的字符数,它就会以字符串的形式返回结果。如果不设置这个数字,它就会从当前位置一直读取到行末。
注意结果中的那些空行。那是因为该文本文件中的每一行都是以换行符("\n")结束的。
3)将所有行读取为一个列表
另外一种用于按行处理文本文件的方法,即readlines()方法。它会将整个文本文件读取成一个列表,文件中的每行文本将会成为那个列表中的一个字符串元素。
对文件进行循环遍历
可以用for循环直接对文件中的行进行迭代
循环变量line依次得到了文件中的每一行。循环的第一次迭代获得第一行;第二次迭代获得第二行;依次类推。当希望对文件进行逐行处理时,这就是一种非常简洁的方法。
文本文件访问模式
“r" 读取文本文件。如果文件不存在,python将会给出一个错误。
"w“ 写入文本文件。如果文件已经存在,则会被覆盖掉。如果文件不存在,则会被创建出来。
输出
write()方法的功能与read()和readline()相反。它把含有文本数据或二进制数据块的字符串写入到文件中去。
和readlines()一样,writelines()方法是针对列表的操作,它接受一个字符串列表作为参数,将它们写入文件。行结束符并不会被自动加入,如果需要的话,你必须在调用writelines()前给每行结尾加上行结束符。
注意这里并没有writeline()方法,因为它等价于使用以行结束符结尾的单行字符串调用write()方法。
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()方法。
相关文章推荐
- python3 字符编码问题原理简介
- run SVN commands using python
- Python-安装feedparser
- Python -- 冒泡排序算法
- Python yield 使用浅析
- Python 主要模块和常用方法简览
- python 安装 mysql-python遇到的问题
- python 内建函数basestring笔记
- Python使用UUID库生成唯一ID
- 杂记_一些关于python代码风格汇总_不断更新
- hash加密 python
- 基于python sqlite3将KDD-99数据集插入数据库中
- Python selenium爬虫
- 使用python将KDD-99中的文本替换为数值形式
- 基于python一个分发小脚本
- python str和repr的区别
- Python标准库:内置函数eval(expression, globals=None, locals=None)
- python日志记录-logging模块
- python切片详解
- Python_爬虫