草庐IT

Python gzip 拒绝读取未压缩的文件

我似乎记得Pythongzip模块以前允许您透明地读取非gzip文件。这真的很有用,因为它允许读取输入文件,无论它是否被gzip压缩。您根本不必担心。现在,我得到一个IOError异常(在Python2.7.5中):Traceback(mostrecentcalllast):File"tst.py",line14,inrec=fd.readline()File"/sw/lib/python2.7/gzip.py",line455,inreadlinec=self.read(readsize)File"/sw/lib/python2.7/gzip.py",line261,inreadse

python - 在 python 3 中读取 gzip 压缩的 csv 文件

我在使用gzip和csv库读取gzip压缩的csv文件时遇到问题。这是我得到的:importgzipimportcsvimportjsonf=gzip.open(filename)csvobj=csv.reader(f,delimiter=',',quotechar="'")forlineincsvobj:ts=line[0]data_json=json.loads(line[1])但这会引发异常:File"C:\Users\yaronol\workspace\raw_data_from_s3\s3_data_parser.py",line64,indownload_from_S3se

python - mmap 和 gzip 可以协作吗?

我正在尝试弄清楚如何将mmap与gzip压缩文件一起使用。这可能吗?importmmapimportosimportgzipfilename=r'C:\temp\data.gz'file=gzip.open(filename,"rb+")size=os.path.getsize(filename)file=mmap.mmap(file.fileno(),size)printfile.read(8)输出数据被压缩。 最佳答案 你可以轻松做到。事实上,gzip模块将一个类似文件的对象作为可选参数。importmmapimportgzip

Python:如何从 gzip 压缩中流式传输/管道传输数据?

我需要做这样的事情,但是在python中:ddif=/dev/sdb|gzip-c|curlftpupload我不能将整个命令与Popen一起使用,因为:我需要非阻塞操作我需要进度信息(尝试遍历proc.stderr但无济于事)另一件大事是我无法在上传之前在内存或磁盘上创建压缩的gzip文件。所以这就是我想要弄清楚如何做的事情,gzip_stream_of_strings(input)是未知的:importos,pycurlfilename='/path/to/super/large/file.img'filesize=os.path.getsize(filename)defprogr

python 跳转到 txt 文件中的一行(gzipped 文件)

我正在阅读一个大文件,并对其进行处理。我希望能够在不花费很长时间的情况下跳转到文件的中间。现在我正在做:f=gzip.open(input_name)foriinrange(1000000):f.read()#justskippingthefirst1Mrowsforlineinf:do_something(line)有没有更快的方法来跳过压缩文件中的行?如果我必须先解压缩它,我会这样做,但必须有办法。当然是一个文本文件,有\n分隔线。 最佳答案 gzip的本质是当文件被压缩时不再有行的概念——它只是一个二进制blob。查看this

python - 如何在 Python 中检查空的 gzip 文件

我不想使用操作系统命令,因为它依赖于操作系统。这在tarfile中可用,tarfile.is_tarfile(filename),用于检查文件是否为tar文件。我无法在gzip模块中找到任何相关命令。编辑:我为什么需要这个:我有gzip文件列表,这些文件的大小各不相同(1-10GB),有些是空的。在读取文件(使用pandas.read_csv)之前,我想检查文件是否为空,因为对于空文件,我在pandas.read_csv中收到错误。(错误如:预期15列,发现-1)错误命令示例:importpandasaspdpd.read_csv('C:\Users\...\File.txt.gz',

python - 如何直接以 gzip 格式保存 pandas 数据框?

这个问题在这里已经有了答案:ApplyGZIPcompressiontoaCSVinPythonPandas(4个答案)howcanIsaveaPandasdataframeintoacompressedcsvfile?[duplicate](1个回答)关闭去年。我有一个名为df的pandas数据框。我想将其保存为gzip格式。一种方法如下:importgzipimportpandasdf.save('filename.pickle')f_in=open('filename.pickle','rb')f_out=gzip.open('filename.pickle.gz','wb')f

python - 如何在 python 中解码 HTTP 响应中返回的 gzip 压缩数据?

我在python中创建了一个客户端/服务器架构,我从客户端获取HTTP请求,该客户端通过我的代码请求另一个HTTP服务器来提供服务。当我从第三台服务器获得响应时,我无法解码gzip压缩数据,我首先使用\r\n作为分隔符拆分响应数据,这让我得到了数据列表中的最后一项然后我尝试用解压它zlib.decompress(data[-1])但它给我一个不正确标题的错误。我该如何解决这个问题?代码client_reply=''while1:chunk=server2.recv(512)iflen(chunk):client.send(chunk)client_reply+=chunkelse:br

python - 如何使用包含额外数据的 Gzip 文件?

我正在编写一个脚本,它将以gzip流的形式处理来自仪器的数据。在大约90%的情况下,gzip模块可以完美运行,但某些流会导致它产生IOError:Notagzipfile。如果删除gzipheader并将deflate流直接馈送到zlib,我反而会在解压缩数据时得到错误-3:不正确的header检查。在我的头撞墙大约半天后,我发现有问题的流包含看似随机数量的额外字节(它们不是gzip数据的一部分)附加到末尾。令我感到奇怪的是,Python无法处理这些文件有两个原因:Gzip和7zip都可以毫无问题地打开这些“填充”文件。(Gzip生成消息解压成功,尾随垃圾被忽略,7zip成功成功。)G

python - 在 Python 中从 AWS S3 读取 gzip 文件的内容

我正在尝试从我在AWS中运行的Hadoop进程中读取一些日志。日志存储在S3文件夹中,路径如下。桶名=名称键=y/z/stderr.gz这里Y是集群ID,z是文件夹名称。这两者都充当AWS中的文件夹(对象)。所以完整路径就像x/y/z/stderr.gz。现在我想解压缩这个.gz文件并读取文件的内容。我不想将此文件下载到我的系统,希望将内容保存在python变量中。这是我到目前为止尝试过的。bucket_name="name"key="y/z/stderr.gz"obj=s3.Object(bucket_name,key)n=obj.get()['Body'].read()这给了我一种