私はcsvファイルを解析するPythonコードをいくつか持っています。現在、データファイルをgzip csvファイルに変更することをベンダーが決定しました。私は最小限で/きれいなコードの変更が何であるか疑問に思っていました。現在の関数:Python "with"文の構文
def load_data(fname, cols=()):
... ...
with open(fname) as f:
reader = csv.DictReader(f)
... ...
コードをload_data2()に複製し、with文を完全に動作するように変更したくありません。
with gzip.open(fname) as f:
withステートメントをどのように除外できますか?
def load_data(fname, cols=()):
... ...
if fname.endswith('.csv.gz'):
with gzip.open(fname) as f:
else:
with open(fname) as f:
reader = csv.DictReader(f)
... ... # code to parse
これは、 'with'ステートメントで直接行うこともできます:' 'gzip.open(fname)if fname.endswith( '。csv.gz')else(fname)' f 'として開く – kindall
ありがとう、 ! – fivelements