如何检查文件是否是.gz文件

时间:2014-09-16 20:01:44

标签: python io

我正在处理python输入输出并获得了CSV文件(可能是gzipped) 。如果是gzip,我必须解压缩,然后阅读它。

我试图读取前两个字节,如下所示:

def func(filename):
    fi = open(filenam,"rb")
    byte1 = fi.read(1)
    byte2 = fi.read(1)

然后我会检查byte1byte2,看看它们是否等于0x1f0x8b,然后解压缩然后打印它的每一行。

但是当我运行它时,我收到了这个错误:

  

TypeError:'NoneType'对象不可迭代

我是python的新手,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

从你在评论中所说的内容中理解 - “这就是我在函数中所拥有的”我会假设问题是该函数没有返回值。所以函数的调用者可能会尝试在没有返回值的函数调用的结果上运行,即NoneType。

答案 1 :(得分:0)

你需要在Python中使用endwith()检查文件夹是否有.gz扩展名文件,然后使用gzip模块解压缩它并读取.gz内容

import os
import gzip
for file in os.listdir(r"C:\Directory_name"):
    if file.endswith(".gz"):
        print file
        os.chdir(r"C:\Directory_name")
        f = gzip.open(file, 'rb')
        file_content = f.read()
        f.close()

所以这里" file_content"变量将保存csv gzipped文件的数据