遍历多个子文件夹级别并将csv.gz文件转换为csv

时间:2018-12-24 06:15:20

标签: python csv jupyter

我有成千上万个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是我尝试使用的第一种语言,因此对您的帮助将非常感激。

1 个答案:

答案 0 :(得分:0)

使用Linux命令可能是更简单的方法。尝试以下

find <your directory path here> -name '*.gz' | xargs gunzip