在Python中从不同路径检索文件?

时间:2011-08-08 20:41:49

标签: python path

我正在为命令行程序构建一个Python包装器。包装器获取一系列文件,并将它们作为参数逐个发送到命令行程序。我的包装器看起来像这样:

for file_name in glob.iglob('A0*'):
    output_dir = ''.join(('my_output_',file_name))
    cmd = ['/Users/bunsen/src/my_program', file_name]
    process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
    process.wait()

我在理解如何控制文件路径方面遇到了一些困难。我有一个很长的文件名列表,我的命令行程序必须遍历。目前,如果文件与我的Python脚本位于同一目录中,我的包装器可以正常工作。

我想将命令行参数文件存储在一个单独的子目录中,并将此子目录作为Python的相对路径进行访问。如何在我的程序中添加允许Python执行此操作的代码?感谢。

2 个答案:

答案 0 :(得分:0)

您似乎想要的是以下内容:glob.iglob(os.getcwd()+'/A0*')

答案 1 :(得分:0)

您可以使用os模块获取一些有用的(和平台无关的)路径名函数。你可能会尝试类似的东西:

import os
COMMAND_LINE_FILES_HOME = "cmd_files" # Set the name of the directory where the command line files live
BASE_PATH = os.path.abspath(os.path.dirname(__file__)) # gets the path to the directory where this file lives

COMMAND_LINE_FILES_DIRECTORY = os.path.join(BASE_PATH, COMMAND_LINE_FILES_HOME) # Join these paths in a system-neutral way

现在,您可以在打开文件时使用COMMAND_LINE_FILES_DIRECTORY。您可以获取该目录中的文件列表并迭代它们(使用上面的Carlos建议,glob.iglob(路径名)),或者您想要的任何内容。