如果它不是文件名的长度,它的文件名的内容...
Python是治疗“\ 12”作为一个控制序列。
>>> fn='C:\Documents and Settings\Administrator\op_models\Corp_Network_Nov12\abcde_corporate_nov_12.project\abcde_corporate_nov_12-ctr.rptd.dir\ctr\Non Business Hours for Weeknights\hourly_data_for_2_weeks\1294897740\json.data\Link\0\Link Utilization\analyzer393146160-data0.js'
>>> print fn
C:\Documents and Settings\Administrator\op_models\Corp_Network_Nov12bcde_corporate_nov_12.projectbcde_corporate_nov_12-ctr.rptd.dir\ctr\Non Business Hours for Weeknights\hourly_data_for_2_weeks
94897740\json.data\Link\Link Utilizationnalyzer393146160-data0.js
使用raw strings为Windows文件名会有所帮助:
>>> fn=r'C:\Documents and Settings\Administrator\op_models\Corp_Network_Nov12\abcde_corporate_nov_12.project\abcde_corporate_nov_12-ctr.rptd.dir\ctr\Non Business Hours for Weeknights\hourly_data_for_2_weeks\1294897740\json.data\Link\0\Link Utilization\analyzer393146160-data0.js'
>>> print fn
C:\Documents and Settings\Administrator\op_models\Corp_Network_Nov12\abcde_corporate_nov_12.project\abcde_corporate_nov_12-ctr.rptd.dir\ctr\Non Business Hours for Weeknights\hourly_data_for_2_weeks\1294897740\json.data\Link\0\Link Utilization\analyzer393146160-data0.js
更新
另外,使用正斜杠 '/',而不是反斜杠 '\',因为这些东西会在工作的所有操作系统,并且会像注释中那样在路径名的末尾为您节省反斜杠的麻烦。请参阅os.path.join()
。
更新2
的问题简化演示:
>>> open('.\12\n\r\file.txt')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: '.\n\n\r\x0cile.txt'
>>> open('./12/n/r/file.txt')
<open file './12/n/r/file.txt', mode 'r' at 0x7ff83f98>
C:\Users\johnysweb>copy .\12\n\r\file.txt con
Blah
1 file(s) copied.
谢谢。限制超过260个字符。 MSDN文章提到,我们可以使用“\\?\”作为长文件名的前缀,只是好奇,如果有人知道我可以如何将前缀添加到文件名。当我尝试执行简单的“+”操作时,在扫描单引号字符串时出现错误EOL。 (fname ='\\?\'+ fname) – AshD 2011-01-13 19:46:54
使用“\\\\?\\”。原始字符串在这种情况下不起作用。 – cgohlke 2011-01-13 20:11:20
改为使用正斜杠。另请参阅http://stackoverflow.com/faq#howtoask – Johnsyweb 2011-01-13 20:55:58