我有一个通常需要执行以下两个任务之一的脚本:
1)处理一堆文件,其路径从通配符扩展扩展而来。
2)处理具有明确路径的特定文件。
我一直在使用 glob 来处理通配符扩展,但这引发了一个问题。因为 glob 只返回实际存在的路径,所以如果用户给出了不存在文件的特定路径,则代码不会产生错误。
下面是代码的最小工作示例 (MWE)。MWE 愉快地处理从通配符扩展的现有文件,但不会生成所需的错误消息,因为 glob 只返回现有路径。
#!/usr/bin/env python3
import argparse, glob, sys, os
parser = argparse.ArgumentParser()
parser.add_argument("src_path", metavar="path", type=str,
help="Path to files to be merged; enclose in quotes, accepts * as wildcard for directories or filenames")
args = parser.parse_args()
files = glob.iglob(args.src_path)
for file in files:
try:
with open(file, 'r') as f:
sys.stdout.write('File exists: ' + file + '\n')
except IOError:
sys.stderr.write('File does not exist: ' + file + '\n')
如何修改它以使其行为符合要求?