如果它不是文件名的長度,它的文件名的內容...
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