连接字符串时转义字符
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 一样)。
正在尝试从文件夹中读取 .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 一样)。