スクリプトに引数として渡されたファイルを処理するスクリプトがあります。スクリプトに渡されたファイルが存在しない場合、エラー メッセージを stderr に書き込みたいと考えています。ここで見つけることができるすべての関連投稿を読んだ後、次の最小限の作業例が機能しない理由を理解できません。ファイルが存在する場合は期待どおりに動作しますが、ファイルが存在しない場合は何もしないように見えます。
#!/usr/bin/env python3
import argparse, glob, sys
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('Fild exists: ' + file + '\n')
except IOError:
sys.stderr.write('File does not exist: ' + file + '\n')