我正在尝试使用python 3 gzip文件。当我gzip文件时,代码无需执行任何操作即可更改文件名。我不确定我是否完全理解gzip模块的工作。
下面是代码:
dir_in = '/localfolder/new_files/'
dir_out = '/localfolder/zippedfiles/
file_name = 'transactions_may05'
def gzip_files(dir_in, dir_out, file_name):
with open(dir_in + file_name, 'rb') as f_in, gzip.open(dir_out + 'unprocessed.' + file_name + '.gz', 'wb') as f_out:
f_out.writelines(f_in)
预期输出:
外部文件:unprocessed.transactions_may05.gz
当我双击它时,我应该得到原始文件transactions_may05
当前输出:
外部文件: unprocessed.transactions_may05.gz
-如预期
当我双击它时,内部文件也未处理。附加到它。我不确定为什么未处理。被附加到内部文件名
内部文件: unprocessed.transactions_may05
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
这是gzip和gunzip的预期行为。 如手册页所述:
gunzip在其命令行上获取文件列表,并替换每个文件 名称以.gz,-gz,.z,-z或_z结尾的文件(忽略大小写),并且 以正确的幻数开头且未压缩 没有原始扩展名的文件。
如果您不想更改名称,则在压缩文件名时不应修改文件名。