un novato aquí. ¿Alguien podría decirme por qué usamos una 'r' en algunos casos antes del nombre de la ruta en la siguiente función?:
df = pd.read_csv(r"Path_name")Gracias por adelantado
En Python, la barra invertida se usa para indicar caracteres especiales.
Por ejemplo, "hello\nworld" , el \n significa una nueva línea. Intenta imprimirlo.
Los nombres de ruta en Windows tienden a tener barras invertidas. Pero queremos que se refieran a barras invertidas reales, no a caracteres especiales.
r significa "sin procesar" y hará que las barras invertidas en la cadena se interpreten como barras invertidas reales en lugar de caracteres especiales.
por ejemplo r"hello\nworld" significa literalmente los caracteres "hello\nworld" . Nuevamente, intente imprimirlo.
Hay más información en los documentos de Python, es una buena idea buscarlos para preguntas como estas.
https://docs.python.org/3/tutorial/introduction.html#strings
Una cadena sin procesar manejará barras diagonales inversas en la mayoría de los casos, como estos dos ejemplos:
In [11]: r'c:\path' Out[11]: 'c:\\path'Sin embargo, si hay una barra diagonal final, se romperá:
In [12]: r'c:\path\' File "<ipython-input-12-9995c7b1654a>", line 1 r'c:\path\' ^ SyntaxError: EOL while scanning string literalLas barras diagonales no tienen este problema:
In [13]: r'c:/path/' Out[13]: 'c:/path/' El método seguro y portátil es usar barras diagonales siempre y si crea una cadena para una ruta completa, use os.path para manejar correctamente la creación de una ruta que funcionará cuando el código se ejecute en diferentes sistemas operativos:
In [14]: import os path = 'c:/' folder = 'path/' os.path.join(path, folder) Out[14]: 'c:/path/'r puede preceder a una cadena de ruta.r'C:\Users\username' funcionar'C:\Users\username\' no lo hace, porque el final \ escapa del ' .r'C:\Users\username\' + file , donde file = 'test.csv' tampoco funcionaráSyntaxError: EOL while scanning string literalpandas que leerán un archivo, como pandas.read_csv , aceptarán un objeto str o pathlib para una ruta de archivo.f-string .num = 6 , f'I have {num} files' interpreta como 'I have 6 files' , es un ejemplo del uso de una f-string . import pandas as pd files = ['test1.csv', 'test2.csv', 'test3.csv'] df_list = list() for file in files: df_list.append(pd.read_csv(rf'C:\Users\username\{file}')) # path with f-string df = pd.concat(df_list)