我有一些解析 csv 文件的 python 代码。现在我们的供应商决定将数据文件更改为 gzip csv 文件。我想知道我必须做的最小/最干净的代码更改是什么。当前功能:
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