众所周知,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