我希望读取没有特定名称(例如日期/时间命名)的传入XML文件,以提取值并执行特定任务。 我可以逐步浏览文件,但是无法打开它们并阅读它们。
我所拥有的是: -
import os
path = 'directory/'
listing = os.listdir(path)
for infile in listing:
print infile
但是当我添加以下内容以尝试阅读文件时,它会错误地说没有这样的文件或目录。
file = open(infile,'r')
谢谢。
答案 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')