从纯文本文件中读取数据

5

假设我有一个文本文件,内容如下:

car
apple
bike
book

如何读取并将它们放入字典或列表中?


在手册中有详细说明:http://docs.python.org/tutorial/inputoutput.html - CrociDB
1
只是为了阐明对大多数人来说显而易见的事情(但并非所有人,这可以从一些重复提出此问题的人中看出):Python不关心文件的名称,或者特别地说,它是否具有扩展名以及该扩展名是否为“.txt”。 - tripleee
4个回答

11

使用 readlines() 轻松地将它们读入列表中:

f = open('your-file.dat')
yourList = f.readlines()

如果您需要去除换行符,可以使用ars的方法,或者执行以下操作:

yourList = [line.rstrip('\n') for line in f]
如果您想要一个键从1到列表长度的字典,第一种方法是按上述方式创建列表,然后执行以下操作:
yourDict = dict(zip(xrange(1, len(yourList)+1), yourList))

2
使用 with open('your-file.dat') as f: 是一个好习惯,这样文件句柄可以被正确关闭。 - blokeley
@blokeley这是可以的,但是根据版本,可能需要从__future__导入,并且我不想为一个两行的代码片段解释所有这些。 - Michael Mrozek

3
你可以使用 with 来操作文件。这被称为上下文管理器,会在缩进块结束后自动关闭文件。
with open('data.txt') as f:
    words = f.readlines()

如果你不想使用上下文管理器,那么就需要手动关闭文件。
f = open('data.txt')
words = f.readlines()
f.close()

否则,只要f仍在作用域内,文件就会保持打开状态。

2
words = []
for word in open('words.txt'):
    words.append(word.rstrip('\n'))

words列表将包含您文件中的单词。 strip会删除换行符。


0

这在Python教程中已经非常详细地讲解了。

lines = open('filename.txt', 'r').readlines()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接