在Python中打开和读取具有未知文件名的顺序XML文件

时间:2011-09-16 00:27:46

标签: python

我希望读取没有特定名称(例如日期/时间命名)的传入XML文件,以提取值并执行特定任务。 我可以逐步浏览文件,但是无法打开它们并阅读它们。

我所拥有的是: -

 import os
 path = 'directory/'
 listing = os.listdir(path)
 for infile in listing:
      print infile

但是当我添加以下内容以尝试阅读文件时,它会错误地说没有这样的文件或目录。

      file = open(infile,'r')

谢谢。

4 个答案:

答案 0 :(得分:3)

os.listdir提供基本名称,而不是绝对路径。您需要执行os.path.join(path, infile)而不仅仅是infile(这可能仍然是相对路径,应该没问题;如果您需要绝对路径,则需要通过{{1}提供它})。

答案 1 :(得分:3)

您还需要提供文件路径:

file = open(os.path.join(path,infile),'r')

答案 2 :(得分:3)

作为在其他答案中加入目录路径和文件名的替代方法,您可以使用glob模块。当您的目录可能包含您不想处理的其他(非XML)文件时,这也很方便:

import glob
for infile in glob.glob('directory/*.xml'):
    print infile

答案 3 :(得分:2)

您必须使用

加入目录路径和文件名
os.path.join(path, infile)

也可以使用不带/:

的路径
path = 'directory'

像这样(未优化,只需对代码进行一些小改动):

import os
 path = 'directory'
 listing = os.listdir(path)
 for infile in listing:
      print infile
      file_abs = os.path.join(path, infile)
      file = open(file_abs,'r')