我需要将我从FTP站点下载的gz文件解压缩到本地Windows文件服务器。我为文件的本地路径设置了变量,我知道它可以被GZIP混淆使用。
我该怎么做? GZ文件中的文件是XML文件。
答案 0 :(得分:16)
import gzip
f = gzip.open('file.txt.gz', 'rb')
file_content = f.read()
f.close()
答案 1 :(得分:5)
with gzip.open('features_train.csv.gz') as f:
features_train = pd.read_csv(f)
features_train.head()
答案 2 :(得分:2)
Parent Child Educated
'P1', 'C1', 'YES'
'P1', 'C2', 'YES'
'P1', 'C3', 'NO'
'P2', 'C11', 'YES'
'P2', 'C12', 'NO'
'P3', 'C21', 'YES'
'P3', 'C22', 'YES'
'P4', 'C31', 'NO'
'P4', 'C32', 'NO'
答案 3 :(得分:2)
不是一个确切的答案,因为您正在使用xml数据,并且目前没有pd.read_xml()
函数(从v0.23.4开始),但是pandas(从v0.21.0开始)可以为您解压缩文件!谢谢韦斯!
import pandas as pd
import os
fn = '../data/file_to_load.json.gz'
print(os.path.isfile(fn))
df = pd.read_json(fn, lines=True, compression='gzip')
df.tail()
答案 4 :(得分:2)
很简单..给你!!
import gzip
#path_to_file_to_be_extracted
ip = sample.gzip
#output file to be filled
op = open("output_file","w")
with gzip.open(ip,"rb") as ip_byte:
op.write(ip_byte.read().decode("utf-8")
wf.close()
答案 5 :(得分:0)
如果要在解压缩文件之后解析文件,请不要忘记使用 decode()方法,当您以二进制文件形式打开文件时,这是必需的。
import gzip
with gzip.open(file.gz, 'rb') as f:
for line in f:
print(line.decode().strip())
答案 6 :(得分:0)
如果你有一个 linux 环境,使用命令 gunzip
很容易解压。
转到文件夹并给出如下
gunzip file-name
答案 7 :(得分:0)
如果您的计算机上安装了 gzip(和 gunzip)程序,一个简单的方法是从 python 调用该命令:
import os
filename = 'file.txt.gz'
os.system('gunzip ' + filename)
可选,如果您想保留原始文件,请使用
os.system('gunzip --keep ' + filename)
答案 8 :(得分:0)
您可以使用 gzip.decompress()
来做到这一点:
rb
模式读取输入文件;w
模式和utf8
编码打开输出文件;gzip.decompress()
输入字节;str
的内容。str
写入输出文件。def decompress(infile, tofile):
with open(infile, 'rb') as inf, open(tofile, 'w', encoding='utf8') as tof:
decom_str = gzip.decompress(inf.read()).decode('utf-8')
tof.write(decom_str)