2016-11-21 76 views
-1

我需要使用区间0-400按名称读取目录中的文件。 这意味着PROGRAMM读取与名称的文件从0到400如何按名称读取目录中的文件?

现在我有这样的代码:

with open(file) as xml: 
     doc = xmltodict.parse(xml.read()) 

所以,我想:

for num in range(0,400) 
    filename = num".vtb" 
    doc = xmltodict.parse(filename.read()) 

问题是,我使用:

if __name__ == '__main__': 
    files = glob.glob("data*") 
    pool = Pool() 
    pool.map(open_xml, files) 
    c.close() 

我把数组files改为map功能。我怎样才能通过0-400阵列文件呢?

+0

什么是现在发生的事情是不符合您的期望。解释你现在遇到的问题。如果您收到任何错误,请显示Traceback。 – idjaw

+0

首先,它应该是'范围内的数字(0,400):filename = num +“.vtb”。其次,你可能想要解释你坚持什么,或者人们不知道该怎么回答。 – Musen

+0

因此,在我将此结果传递给'map':'pool.map(open_xml,files)'后,我没有读取文件:'files = glob.glob(“data/*”)'。所以,我需要从0到400的文件,并将这些传递给'map' – Goga

回答

1

不确定你在问什么。但是你试图编写的代码不起作用,我想你想知道如何使它工作。所以,你写道:

for num in range(0,400) 
    filename = num".vtb" 
    doc = xmltodict.parse(filename.read()) 

相反,尝试:

for num in range(0,400) 
    filename = str(num) + ".vtb" 
    doc = xmltodict.parse(filename.read()) 

如果你想要的东西,那么你的问题不在于此,这并不这样做。

编辑

阅读您的意见,我的理解是,你要这些0400文件传递给map。然后你只需要建立一个包含所有路径上使用的清单:

filenames = [] 
for num in range(0,400) 
    filenames.append(str(num) + ".vtb") 

然后:

pool.map(open_xml, filenames) 
+0

查看已更新的问题 – Goga

+0

@Goga更新了答案。 –

+0

那么,循环应该在外面? – Goga

相关问题