0

这可能是我的一个简单错误,但我无法弄清楚如何在不创建大量子目录的情况下压缩文件。

这是我的做法:

f_in = open(r'C:\cygwin\home\User\Stuff\MoreStuff\file.csv', 'r')
gzip_file_name = r'C:\cygwin\home\User\Stuff\MoreStuff\file.csv.gz'
f_out = gzip.open(gzip_file_name, 'w')
f_out.writelines(f_in)
f_out.close()

问题是,当我解压缩该.gz文件时,我得到的不仅仅是csv文件,而是最终以 csv 文件结尾的一长串目录。例如cygwin\home\User\Stuff\MoreStuff\file.csv

我的解决方法看起来有点像这样:

current_dir = os.getcwd()
os.chdir(r'C:\cygwin\home\User\Stuff\MoreStuff') 
f_in = open('file.csv', 'r')
gzip_file_name = 'file.csv.gz'
f_out = gzip.open(gzip_file_name, 'w')
f_out.writelines(f_in)
f_out.close()
os.chdir(current_dir)

我不知道继续更改当前目录是否是个好主意(特别是因为我可能有多个文件要压缩)。

那么,有没有办法不制作这些子目录?(我在官方文档中找不到任何讨论此问题的内容)。

注意:我使用的是 Windows,但我确实需要它是可移植的。我也在使用 Python 2.4。

谢谢你的时间。

编辑:当我在 WinRar 甚至 7zip 中打开压缩文件时,我会看到子目录。如果我这样做chdir,那么我不再看到那些子目录。

4

1 回答 1

1

crayzeewulf 提供的上一个问题的链接工作得很好。

这可能只是较旧的 Python 发行版中的一个问题。根据那个差异(也由 crazyzeewulf 提供),这在较新的版本中已更改,因此您可能无法在 Python 2.7 中重现此问题。

谢谢大家的帮助。

于 2013-03-14T16:53:34.710 回答