python读写文本函数 python如何读取文本( 二 )


打开文件后,程序具有读(默认)该文件的权限 。
最后,使用文件句柄的 close() 方法关闭文件 。这非常重要 , 因为使用完而没有关闭的文件会占用内存或造成安全问题 。
如果Python找不到该文件,则会返回错误,比如下面这样:
Python提示我们没有相应的文件或者目录: 'pii.txt' 。
打开文件后就可以对文件进行操作:
fhand.read() 方法将文件内容作为一个字符串返回 。
文件中的每一行末尾使用换行符 \n 表示换行,例子中方法 rstrip() 去掉文本中的换行符,然后输出 。
程序的运行效果如下:
如果在文件关闭之前程序发生BUG意外退出,则文件不会关闭,为了避免此类事件的发生,可以使用 with 语句:
with 语句的特点是即便在操作文件时发生错误,文件也会自动被清理 。
fhand.read() 虽然可以读取文本内容,但是当我们想要逐行处理文件内容 , 或者文件很大而无法一次性加载进内存的时候,就不适用了 。
可以使用 for 语句逐行处理文件内容:
本程序中将文件名保存在变量 filename 中 。
打开文件后,使用 for 语句按行读取文件内容 。例子中,每次循环依次取一行文本以字符串的格式保存在变量 line 中 , 每次循环中变量 count 自增1 。
这个程序的作用是 , 打开程序所在目录的 when_old.txt 文件,然后统计行数 , 并输出结果 。
when_old.txt 文件的内容是:
可以使用其他方法操作字符串 line :
程序将以 'And' 开头的行打印出来 。
打开文件后,默认的权限是读(r),如果要写文件,则需要使用写(w)或者追加(a)权限 。
w权限,打开一个文件用于写入 。如果该文件存在,则覆盖该文件;如果该文件不存在,则创建该文件 。
a权限,打开一个文件用于追加 。如果该文件存在,在文件末尾追加;如果该文件不存在,则创建该文件 。
下面是一个使用w权限打开文件的例子:
例子中使用w权限打开该文件,并写入两行 。(如果该文件存在,则内容会被覆盖)
fhand.write() 不会自动添加换行符 , 所以如果需要换行,需在末尾添加 \n。
下面我们写一个统计文件中词频的程序 。
它会统计文件中各个词的出现的次数,然后由高到低显示出前5个词 。
首先我们完成打开和关闭文件的程序内容:
在例子中 , 由用户输入文件名 , 并且使用异常捕获以处理文件打开时的错误 。
下面对内容进行统计:
这个程序:
如此,我们就在字典中存放了 单词:次数 的键值对 。
由于字典不能保存顺序,所以不能对其进行排序 。为此 , 将每个键值对都添加到一个列表中:
在列表 word_list 中 , 每一项都是一个元组 , 每个元组第一个值是单词出现的次数,第二个值是单词内容 。
对其进行逆向(由大到?。┡判颍?
打印最终结果:
整个程序如下:
下面是程序运行结果的示例:
Python中的文件读写-理论知识Python处理两种不同类型的文件:二进制文件和文本文件 。了解两者之间的差异很重要 , 因为它们的处理方式不同 。
二进制文件
在正常计算机使用期间使用的大多数文件实际上是二进制文件 , 而不是文本 。比如:Microsoft Word .doc文件实际上是一个二进制文件,即使它只有文本 。
二进制文件的其他示例包括:
图像文件,包括.jpg,.png,.bmp,.gif,等 。
数据库文件包括.mdb,.frm和.sqlite

推荐阅读