衆所周知,Windows中的文件名不能包含冒號。 不過,我遇到了一個問題,那可以用下面的示例代碼被複制:Python中文件名中的冒號
import os
os.chdir('./temp')
names = ['a', 'b', 'word1: word2', 'c: file', 'd: file']
for name in names:
with open(name, 'w') as f:
f.write('foo')
這個腳本在./temp
目錄中有三個文件:a
,b
(與「富」)和word1
(空) 。它還在D:\
中創建一個名爲file
的文件,該文件是可移動存儲。它不會在C:\
中創建任何內容,這需要管理員權限才能寫入;但是,它確實在當前工作目錄中創建了一個文件。
我不明白三兩件事:
- 爲什麼不拋出任何異常(與其他禁止文字,我得到IO錯誤)?
- 爲什麼
word1
文件爲空? - 爲什麼在當前工作目錄中創建文件?
這與你的觀點相當接近(這是一個很好的問題),但是在處理文件時請使用'with'。傳播良好做法! – Veedrac 2014-09-10 20:26:17
''word1:word2'存儲到名爲''word2''的備用NTFS流。用'dir/R word1'檢查。 – eryksun 2014-09-10 20:30:54
c:file''在C:驅動器的當前工作目錄下創建一個名爲''file''的文件。 – eryksun 2014-09-10 20:35:51