質問: line.strip().split(',') save_recodes(key, values, csvname, lno) import glob for csvname in glob.glob('./*.csv'): read_csv(csvname) ```
回答: 参考までに、スマートな方法ではありませんが、Python には PEP 232 -- Function Attributes がありますので、質問欄のサンプルコードは以下の様にも書くことができます。 ``` def save_recodes(key, values): for value in values: if is_valid(value): save_keyvalue(key, value) else: # エラーログ print(f'WARNING: invalid value "{value}", file"{read_csv.csvname}", line {read_csv.lno}', file=sys.stderr) def read_csv(csvname): read_csv.csvname = csvname for read_csv.lno, line in enumerate(open(csvname), 1): key, *values = line.strip().split(',') save_recodes(key, values) ```