python 拆分带有特殊字符的字符串

python split a string with special charcter

我需要像这样拆分收到的字符串:

my_string = "\data\details0.23.43.txt"

当我使用 my_string.replace ("\", "/")

它 returns : /data/detailsè.23.43.txt

它将我的字符串中的 0 视为特殊字符 'è'

字符串文字中的

\ 被视为转义字符。这就是 s1 = "line\nsecond line" 创建一个包含两行的字符串的原因。这也是你在 my_string.replace ("\", "/").

中使用 "\" 的原因

因此,要解决您的问题,如果您使用的是字符串文字 my string = "\data\details0.23.43.txt",您应该改为使用 "\data\details\350.23.43.txt" 以确保您的 \ 被正确转义。或者,您可以通过在引号前添加 r 来使用原始字符串 my string = r"\data\details0.23.43.txt"。这样什么都不会逃脱(所以 r"\n" 将是一个带有 \n 的 2 字符字符串,而不是只有一个换行符)

在您发表评论后进行编辑: 尝试

my_string = r"\data\details0.23.43.txt"

发生这种情况是因为 \ooo 被解释为具有八进制值的字符,如 docs 中所述。

我想唯一的办法就是转义 \,如下所示:

my_string = "\data\details\350.23.43.txt"

然后您可以执行以下操作:

my_string.split("\")

你从哪里得到字符串?有什么方法可以影响它吗?

这看起来像一条路。最好用

os.path.join("data", "details", "350.23.43.txt")

创建独立于操作系统的路径。