Si no es la longitud del nombre de archivo, que es el contenido del fichero ...
Python es el tratamiento de '\ 12' como una secuencia de control.
>>> 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
Usando raw strings para nombres de archivo de Windows le ayudará:
>>> 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
actualización
Como alternativa, utilizar barras inclinadas '/' en lugar de barras invertidas '\', ya que éstos funcionarán en todos sistemas operativos y le ahorrará molestias con barras invertidas justo al final de una ruta de acceso como en sus comentarios.
Véase también os.path.join()
.
Actualización 2
demostración simplificada del problema:
>>> 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.
Gracias. El límite supera los 260 caracteres. El artículo de MSDN menciona que podemos usar el prefijo "\\? \" Para el nombre de archivo largo, solo curiosidad si alguien sabe cómo puedo agregar el prefijo al nombre del archivo. Cuando trato de hacer una simple operación "+", obtengo un EOL de error al escanear una cadena entre comillas simples '. (fname = '\\? \' + fname) – AshD
Use "\\\\? \\". Una cadena en bruto no funcionará en este caso. – cgohlke
Usa barras diagonales en su lugar. También vea http://stackoverflow.com/faq#howtoask – Johnsyweb