2011-11-18 14 views
5

ファイルがWindows上で作成されたPython ZipFileライブラリでZipファイルを解凍していても、コードがUnix風で実行されている場合、パス区切りは常にUnix形式になりますか?Python ZipFileパス区切り

+0

、それはそれは文字列として保存されていないので、なければならないようです。私は確かにそう望む:) – fncomp

+2

あなたはそう望むだろう!しかし、あなたがコンピュータを扱っているとき、希望は何とも関係ありません。 – Joe

答えて

14

内部的には、ZipFileにはzip file specificationの必要に応じてスラッシュが格納されます。

外部では、os.sepを使用して外部に変換されるため、通常は特定のプラットフォームで予想されるものと一致します。

コードの参照:

+0

ありがとう!私はこれが正しいと思ったが、証拠を得ることは良いことだ。 – Joe

+2

この変換は、ZIPアーカイブにエントリを作成する場合にのみ適用されることに注意してください。既存のメンバにアクセスする場合(例えば 'zip_file.read( 'dir/file.txt')')、スラッシュを常に使用する必要があります。 – Feuermurmel

+1

+1はzipファイル仕様へのリンクです。ありがとう!!!関連するセクションは次のとおりです。 4.4.17ファイル名:(可変) 4.4.17.1オプションの相対パスを使用して、ファイルの名前を指定します。 格納されているパスには、ドライブ文字または デバイス文字、またはスラッシュが含まれていてはなりません。すべてのスラッシュ は、 と逆でスラッシュ '/'でなければなりません。Amiga およびUNIXファイルシステムなどとの互換性のためにスラッシュ '\'を入力してください。入力が標準 の場合、ファイル名フィールドはありません。 –