我正在尝试在子目录中编写一个包含多个文本文件的python脚本,例如:
python script.py --inputdir ~/subdirectory
将执行此子目录中的每个文件。如何使用argparse来做到这一点?你应该写一个函数来访问和打开每个文件吗?
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--inputdir", help="path to your subdirectory",
required=True)
args = parser.parse_args()
现在,我该如何处理args.inputdir
?如何提取文件?
答案 0 :(得分:0)
这不是argparse
的工作。
使用os.walk
递归迭代文件。
import os
for parent, dirnames, filenames in os.walk(args.inputdir):
for fn in filenames:
filepath = os.path.join(parent, fn)
with open(filepath) as f:
# Do something with `f`
答案 1 :(得分:0)
如何使用argparse来做到这一点?你应该写一个函数来访问和打开每个文件吗?
听起来很可能因为argparse不需要知道如何处理命令行参数 - 只是如何获取它们。它可能看起来像:
"Mohammad".ToCharArray().Select(c => c.ToString()).ToArray()
这里我假设您的目录只包含文件(不是更多目录)。如果它确实包含更多目录,您将要过滤掉这些目录(可能使用def process_file(filename):
with open(filename, 'r') as file_input:
pass # do something here . . .
def process_directory(directory_name):
for filename in os.listdir(directory_name):
process_file(os.path.join(directory_name, filename))
process_directory(args.inputdir)
)。