2011-11-18 596 views
5

如果我使用Python ZipFile庫解壓Zip文件,該文件在Windows上創建,但是我的代碼在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鏈接到壓縮文件規範。謝謝!!!以下是相關部分: 4.4.17文件名:(變量) 4.4.17.1文件的名稱,帶有可選的相對路徑。存儲的路徑必須不包含驅動器或 設備字母或前導斜槓。所有斜槓 必須是正斜槓'/'而不是 反斜槓'\'以便與Amiga 和UNIX文件系統等兼容。如果輸入來自標準 輸入,則不存在文件名字段。 –

相關問題