众所周知,windows中的文件名不能包含冒号。 但是,我遇到了一个问题,可以通过下面的示例代码进行复制:
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目录中创build三个文件: a , b (带“foo”)和word1 (空)。 它还在D:创build一个名为file ,它是可移动存储。 它不会在C:创build任何内容,这需要pipe理员权限才能写入; 但是,它确实在当前工作目录中创build了一个文件。
我不明白三件事情:
为什么不引发任何exception(与其他禁止的字符,我得到IOError)?
为什么word1文件是空的?
为什么在当前工作目录中创build一个文件?
对于/ f循环进程文件名符号符号
从C ++的文件名获取完整path
如何在windows中创build一个具有尾随句点的文件名?
在linux中追加date到文件名
.NET的安全/允许的文件名清理
recursion重命名子文件夹windowsbatch file中的文件
在Python中,如何获得文件的正确path?
如何处理windows的ReadDirectoryChangesW()及其混合的长/短文件名输出?
如何在Perl中编写一个* filename *包含utf8字符的文件?
wget unicode文件名错误
windows NTFS支持文件“流”。 您基本上将数据附加到文件之外的文件,并且无法正常查看。 当您创建文件“word1:word2”时,隐藏的流“word2”被附加到“word1”。 如果您将文件word1复制到另一台NTFS计算机上,那么word2数据将随您一起提供
去这里http://technet.microsoft.com/en-us/sysinternals/bb897440.aspx并下载流程序。 运行它会告诉你,word2是附加到word1的流
这个网页还谈到流: http : //www.forensicfocus.com/dissecting-ntfs-hIDden-streams
要真正证明这一点,你可以使用记事本,但是你需要使用.txt扩展名:
file=open(\’word1.txt:word2.txt\’,\’w\’) file.write(\’Testing streams\’) file.close()
现在,使用cmd程序,将目录更改为您创建文件的位置。 键入以下内容:
c:tmp> notepad word1.txt
你会看到一个空的文件。 现在,试试这个:
c:tmp> notepad word1.txt:word2.txt
您应该看到文本Testing streams 。
总结
以上是内存溢出为你收集整理的冒号在Python中的文件名全部内容,希望文章能够帮你解决冒号在Python中的文件名所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容