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")
创建独立于操作系统的路径。
我需要像这样拆分收到的字符串:
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")
创建独立于操作系统的路径。