这可能是我的一个简单错误,但我无法弄清楚如何在不创建大量子目录的情况下压缩文件。
这是我的做法:
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
,那么我不再看到那些子目录。