这可能是我的一个简单错误,但我无法弄清楚如何在不创建大量子目录的情况下压缩文件。
以下是我的表现:
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)
我不知道继续更改当前目录是否是一个好主意(特别是因为我可能有多个要压缩的文件)。
那么,有没有办法不制作这些子目录? (我在官方docs中找不到任何讨论过这个问题。)
注意:我使用的是Windows,但我确实需要它是可移植的。我也在使用Python 2.4。
感谢您的时间。
编辑:当我在WinRar或甚至7zip中打开压缩文件时,我看到了子目录。如果我使用chdir
,那么我不再看到这些子目录。
答案 0 :(得分:1)
crayzeewulf提供的上一个问题的link工作正常。
这可能只是旧版Python发行版中的一个问题。根据{{3}}(也由crazyzeewulf提供),这在新版本中有所改变,因此您可能无法在Python 2.7中重现此问题。
感谢大家的帮助。