我需要提取从FTP站点下载到本地Windows文件服务器的gz文件。我已经为文件的本地路径设置了变量,并且我知道GZIP混乱可以使用它。
我怎样才能做到这一点?GZ文件中的文件是XML文件。
我需要提取从FTP站点下载到本地Windows文件服务器的gz文件。我已经为文件的本地路径设置了变量,并且我知道GZIP混乱可以使用它。
我怎样才能做到这一点?GZ文件中的文件是XML文件。
Answers:
import gzip
import shutil
with gzip.open('file.txt.gz', 'rb') as f_in:
with open('file.txt', 'wb') as f_out:
shutil.copyfileobj(f_in, f_out)
shutil.copyfileobj()
具有第三个参数length
:“整数长度(如果给定的话)是缓冲区大小。特别地,负长度值意味着在不分块循环遍历源数据的情况下复制数据;默认情况下,将数据分块读取到避免不受控制的内存消耗。”
import gzip
f = gzip.open('file.txt.gz', 'rb')
file_content = f.read()
f.close()
由于您正在使用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()