これはおそらく私の側の単純な間違いですが、多くのサブディレクトリを作成せずにファイルを圧縮する方法を完全に理解することはできません。
これが私がそれをしている方法です:
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
、それらのサブディレクトリは表示されなくなります。