如何读取和分配变量/列表多个文本文件?



我有多个文件,假设data{1..10}.txt文件夹data/

我需要将这些文件读入python环境以供进一步使用,我想到的示例代码是:


chr_list = []
x = 0
for item in range(10):
datafile="data/data"+str(i+1)+".txt"
chr_list[x] = open(datafile, "r")
x += 1

预期结果将是

print(chr_list[0])
#prints out content of file data/data1.txt

即使更正了所有可能的错误,此代码也不起作用。因此,我想看看一些关于如何达到我想要的结果的例子。

正如Thierry Lathuille指出的那样,要获取文件的内容,您必须实际调用read方法。如果不调用它,您将拥有一个打开文件的列表,而不是它们的内容。还可以使用 for 循环计数器缩短代码,而不是递增自己的值。

新代码:

chr_list = []
for x in range(10):
datafile="data/data"+str(i+1)+".txt"
chr_list.append(open(datafile).read())

编辑:

该错误来自这样一个事实,即您无法通过引用新索引将项目添加到列表中 - 您必须使用append方法。

编辑2:

您还可以使用列表推导式来减少代码:

chr_list = [open("data/data"+str(i+1)+".txt").read() for i in range(10)]

它可以用字典而不是列表。

chr_list = {}
x = 0
for i in range(10):
datafile="data/data"+str(i+1)+".txt"
chr_list[x] = open(datafile, "r")
x += 1
chr_list[0]

chr_list = {}
for i in range(10):
name = "data" + str(i+1)
chr_list[name] = open("data/"  + name + ".txt", "r")
chr_list['data1']

最新更新