SyntaxError:EOL 扫描字符串文字同时对文件名进行字符串插值

问题描述

我正在尝试为函数编写以下行:

    a.to_csv("~\Desktop\" + file.split('\\')[-1])

但我明白

SyntaxError: EOL while scanning string literal

我也试过一个 f 字符串:

a.to_csv(f"~\Desktop\{file.split('\\')[-1]}")

但我明白

SyntaxError: f-string expression part cannot include a backslash

我不认为这会是一个问题,任何帮助将不胜感激。我正在尝试提取路径的文件名部分。

解决方法

反斜杠用于形成特殊字符,例如 \n 并转义会产生影响的字符,例如在您的情况下是引号。 \" 将成为字符串中的文字引号,并且不会终止字符串。要改变反斜杠的这种行为,你需要自己转义它们。即,如果您想在字符串中使用反斜杠,请始终键入 \\ 而不是 \

a.to_csv("~\\Desktop\\" + file.split('\\')[-1])

应该可以。