我是个新手。谁能告诉我为什么在下面的函数中我们在某些情况下要在路径名前使用“r”?:
df = pd.read_csv(r"Path_name")
先谢了
9avjhtql1#
在Python中,反斜杠用于表示特殊字符。例如,"hello\nworld"--\n表示换行符。尝试打印它。Windows上的路径名中往往包含反斜杠,但我们希望它们是真正的反斜杠,而不是特殊字符。r代表“raw”,会导致字符串中的反斜杠被解释为实际的反斜杠,而不是特殊字符。例如,r"hello\nworld"的字面意思是字符"hello\nworld"。再次尝试打印它。更多的信息在Python文档中,搜索这些文档中的问题是一个好主意。https://docs.python.org/3/tutorial/introduction.html#strings
"hello\nworld"
\n
r"hello\nworld"
xuo3flqw2#
在大多数情况下,原始字符串将处理反斜杠,如以下两个示例:
In [11]: r'c:\path' Out[11]: 'c:\\path'
但是,如果后面有斜杠,则会断开:
In [12]: r'c:\path\' File "<ipython-input-12-9995c7b1654a>", line 1 r'c:\path\' ^ SyntaxError: EOL while scanning string literal
正斜杠没有这个问题:
In [13]: r'c:/path/' Out[13]: 'c:/path/'
安全且可移植的方法是始终使用正斜杠,如果为完整路径构建字符串,则使用os.path正确处理构建在不同操作系统上执行代码时将工作的路径:
os.path
In [14]: import os path = 'c:/' folder = 'path/' os.path.join(path, folder) Out[14]: 'c:/path/'
nsc4cvqm3#
r
r'C:\Users\username'
r'C:\Users\username\'
\
'
r'C:\Users\username\' + file
file = 'test.csv'
SyntaxError: EOL while scanning string literal
pandas
pandas.read_csv
str
pathlib
f-string
num = 6
f'I have {num} files'
'I have 6 files'
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)
3条答案
按热度按时间9avjhtql1#
在Python中,反斜杠用于表示特殊字符。
例如,
"hello\nworld"
--\n
表示换行符。尝试打印它。Windows上的路径名中往往包含反斜杠,但我们希望它们是真正的反斜杠,而不是特殊字符。
r代表“raw”,会导致字符串中的反斜杠被解释为实际的反斜杠,而不是特殊字符。
例如,
r"hello\nworld"
的字面意思是字符"hello\nworld"
。再次尝试打印它。更多的信息在Python文档中,搜索这些文档中的问题是一个好主意。
https://docs.python.org/3/tutorial/introduction.html#strings
xuo3flqw2#
在大多数情况下,原始字符串将处理反斜杠,如以下两个示例:
但是,如果后面有斜杠,则会断开:
正斜杠没有这个问题:
安全且可移植的方法是始终使用正斜杠,如果为完整路径构建字符串,则使用
os.path
正确处理构建在不同操作系统上执行代码时将工作的路径:nsc4cvqm3#
r
may precede a path string.r'C:\Users\username'
worksr'C:\Users\username\'
does not, because the trailing\
escapes the'
.r'C:\Users\username\' + file
, wherefile = 'test.csv'
also won't workSyntaxError: EOL while scanning string literal
pandas
methods that will read a file, such aspandas.read_csv
will accept astr
or apathlib
object for a file path.f-string
.num = 6
,f'I have {num} files'
interprets as'I have 6 files'
, is an example of using anf-string
.