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を使用していますが、これを移植可能にする必要があります。私もPython2.4を使用しています。

御時間ありがとうございます。

編集:WinRarまたは7zipで圧縮ファイルを開くと、サブディレクトリが表示されます。でそれを行うとchdir、それらのサブディレクトリは表示されなくなります。

4

1 に答える 1

1

crayzeewulfが提供した前の質問へのリンクは問題なく機能しました。

これは、Pythonの古いディストリビューションでのみ問題になる可能性があります。その差分(これもcrazyzeewulfによって提供されます)によると、これは新しいバージョンで変更されたため、Python2.7ではこの問題を再現できない可能性があります。

皆様のご協力に感謝いたします。

于 2013-03-14T16:53:34.710 に答える