Board logo

标题: python积累--读写文本文件实例(1) [打印本页]

作者: look_w    时间: 2019-5-16 14:45     标题: python积累--读写文本文件实例(1)

读写文件是最常见的 IO 操作。我们经常从文件读取输入,将内容写到文件。
读文件

在 Python 中,读文件主要分为三个步骤:
打开文件
读取内容
关闭文件

一般使用形式如下:

try:
    f = open('/path/to/file', 'r')    # 打开文件
    data = f.read()                   # 读取文件内容
finally:
    if f:
        f.close()                     # 确保文件被关闭



注意到,我们在代码中加了 try…finally,这是因为,如果打开和读取文件时出现错误,文件就没有被关闭。为了确保在任何情况下,文件都能被关闭,我们加了 try…finally。

上面的代码中,‘r’ 模式表示读模式,open 函数的常用模式主要有:

‘r'    读模式
‘w'    写模式
‘a'    追加模式
‘b'    二进制模式(可添加到其他模式中使用)
‘+'    读/写模式(可添加到其他模式中使用)



上面的读文件做法很繁琐,我们可以使用 Python 的 with 语句来帮我们自动调用 close 方法:

with open('/path/to/file', 'r') as f:
    data = f.read()


可以看到,这种方式很简洁,而且还能在出现异常的情况下自动关闭文件。
强烈推荐。

通常而言,读取文件有以下几种方式:

一次性读取所有内容,使用 read() 或 readlines();
按字节读取,使用 read(size);
按行读取,使用 readline();
读取所有内容

读取所有内容可以使用 read() 或 readlines()。我们在上面已经介绍过 read() 了,现在,让我们看看 readlines()。

readlines() 方法会把文件读入一个字符串列表,在列表中每个字符串就是一行。

假设有一个文件 data.txt,它的文件内容如下(数字之间的间隔符是’\t’):

10  1   9   9
6   3   2   8
20  10  3   23
1   4   1   10
10  8   6   3
10  2   1   6



我们使用 readlines() 将文件读入一个字符串列表:

with open('data.txt', 'r') as f:
    lines = f.readlines()
    line_num = len(lines)
    print lines
    print line_num


执行结果:

['10\t1\t9\t9\n', '6\t3\t2\t8\n', '20\t10\t3\t23\n', '1\t4\t1\t10\n', '10\t8\t6\t3\n', '10\t2\t1\t6']
6


可以看到,列表中的每个元素都是一个字符串,刚好对应文件中的每一行。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0