我有成千上万个csv.gz文件,这些文件排列在多个级别的文件夹和子文件夹中。文件排列的快照是:
“文件夹”-“子文件夹1”-“子文件夹2”-“ csv.gz文件”
我想设置遍历每个文件夹和子文件夹并提取csv文件的代码,同时保留csv.gz文件。
我尝试了以下代码:
import gzip
import os
directory = os.getcwd()
for dirpath, dir, files in os.walk(top=directory):
for file in files:
with gzip.open(file, 'rt') as f:
data = f.read()
with open(file[:-3], 'wt') as f:
f.write(data)
但是,我收到以下错误消息:“ OSError:不是gzip压缩文件(b'{\ n')”。有谁知道为什么我会收到此错误,或者是否还有其他方法可以解压缩这些文件?我是编码的新手,Python是我尝试使用的第一种语言,因此对您的帮助将非常感激。
答案 0 :(得分:0)
使用Linux命令可能是更简单的方法。尝试以下
find <your directory path here> -name '*.gz' | xargs gunzip