连接字符串时转义字符

Escape characters when joining strings

正在尝试从文件夹中读取 .csv 文件内容。示例代码:

Files_in_folder = os.listdir(r"\folder1\folder2")
Filename_list = []

For filename in files_in_folder:
    If "sometext" in filename:
         Filename_list.append(filename)

Read_this_file = "\folder1\folder2"+max(filename_list)

Data = pandas.read_csv(Read_this_file,sep=',')

获取最大文件名有效,但数据变量失败:

FileNotFoundError: no such file or directory.

我可以访问我在第一行代码中看到的文件夹,但是当我组合两个字符串时,将 r 放在前面不起作用,有什么想法吗?

您需要在连接时将 \ 添加到路径中:

read_this_file = '\folder1\folder2\' + max(filename_list)

但是避免该问题的更好方法是使用

os.path.join("\folder1\folder2", max(filename_list))

对于工作代码,使用这个:


files_in_folder = os.listdir("folder1/folder2/")
filename_list = []
for filename in files_in_folder:
    if "sometext" in filename:
         filename_list.append(filename)
read_this_file = "folder1/folder2/"+max(filename_list)
data = pd.read_csv(read_this_file,sep=',')

解释:

当您将 r 放在字符串之前时,反斜杠后面的字符将原封不动地包含在字符串中,并且所有反斜杠都保留在字符串中。

在您的示例中,如果您尝试打印“\folder1\folder2”,Python 会将 '\f' 部分作为特殊字符读取(就像 \n 一样)。