A menudo he visto sintaxis como esta en el código de Python.

    import os
    os.chdir(r'C:\Users\test\Desktop')

Me preguntaba por qué tendría que dar r antes de la ruta, creo que tiene algo que ver con '\' en la ruta, ¿hay alguna otra forma de dar ruta en lugar de usar r ''?

0
Saranya Sridharan 30 oct. 2017 a las 11:06

4 respuestas

La mejor respuesta

Se asegura de que la barra invertida no se escape de los personajes. Es lo mismo que

os.chdir('C:\\Users\\test\\Desktop')
0
pacholik 30 oct. 2017 a las 08:10

Solo cuando tiene secuencias de escape

print('C:\sys\cat\Desktop')

Mejor para darlo como tipo sin formato para evitar los problemas técnicos o el uso de la barra diagonal.

0
SmartManoj 30 oct. 2017 a las 08:30

También puede usar barras diagonales en Windows, por lo que no necesita literales de cadena sin formato:

>>> import os
>>> os.stat(r'C:\Users\f3k\Desktop\excel.vbs')
nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=555L, st_atime=1367585162L, st_mtime=1367586148L, st_ctime=1367585162L)

La misma usando barras diagonales:

>>> os.stat('C:/Users/f3k/Desktop/excel.vbs')
nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=555L, st_atime=1367585162L, st_mtime=1367586148L, st_ctime=1367585162L)

Pero tenga cuidado usando os.path.join ():

>>> os.path.join('C:/Users/f3k/Desktop', 'excel.vbs')
'C:/Users/f3k/Desktop\\excel.vbs'
0
Maurice Meyer 30 oct. 2017 a las 08:16

'r' antes de la cadena literal hace que Python lo analice como una cadena "en bruto", sin escapar.
Si no desea usar 'r' antes del literal de cadena, pero especifica la ruta con barras simples, puede usar esta notación:

"C:/Users/test/Desktop"

Como sería en sistemas basados en Unix. Windows comprende tanto "\" como "/" en las rutas de los archivos, por lo tanto, el uso de "/" le permite evitar la letra 'r' antes de la cadena de la ruta.

Además, como se mencionó, puede especificar la ruta con barras dobles, pero, como me di cuenta, esto no es lo que quería:

"C:\\Users\\test\\Desktop"
1
MihanEntalpo 30 oct. 2017 a las 08:14