1

我有一个应该从命令提示符运行的程序,并作为它的论点一个 txt 文件,然后它将行和输出解析到与程序相同目录的文件中。

但是,如果我有一个包含多个文件的目录,我需要解析它就行不通了。它仍然在程序的当前目录中而不是在目录中查找文件名,这就是我遇到的问题,使程序读取目录中的文件。

import os, sys

input_filenames = os.listdir(sys.argv[1])

for file in input_filenames:
    parser(file)

我对此有点困惑。任何帮助都感激不尽!

4

2 回答 2

1

glob是一种遍历目录并仅使用您想要的所有文件的简单方法。

import os, glob

for file in glob.glob("*.txt"):
    parser(file)

或者,如果您将整个目录作为列表使用os.listdir(),您可以遍历该目录并使用检查字符串.endswith(),例如:

input_dir = os.listdir(sys.argv[1])

for file in input_dir:
  if file.endswith(".txt"):
    parser(file)
于 2013-01-19T03:22:29.717 回答
0
import os, glob

input_dir = sys.argv[1]

for file in glob.glob(input_dir + "/*"):
    parser(file)
于 2013-01-19T03:21:54.453 回答