如何在Python中从多个文本创建单个原始字符串?
我想在Python中将相邻字符串组合成单个“原始”字符串,例如如何在Python中从多个文本创建单个原始字符串?,python,string,string-literals,Python,String,String Literals,我想在Python中将相邻字符串组合成单个“原始”字符串,例如 >>> s = ( ... r"foo\tbar\n" ... "baz\tqux\n") 然而,这只会使第一部分“原始”: >>> print(s) foo\tbar\nbaz qux >>> 我是否可以将'r'传播到所有相邻的文字?前缀是文字符号的一部分,而不是结果字符串对象的一部分 在每行使用它,这里没有快捷方式: s = ( r"foo\
>>> s = (
... r"foo\tbar\n"
... "baz\tqux\n")
然而,这只会使第一部分“原始”:
>>> print(s)
foo\tbar\nbaz qux
>>>
我是否可以将
'r'
传播到所有相邻的文字?前缀是文字符号的一部分,而不是结果字符串对象的一部分
在每行使用它,这里没有快捷方式:
s = (
r"foo\tbar\n"
r"baz\tqux\n")
如果您确实有很多这样的前缀,并且发现所有那些r
前缀都很麻烦,那么您可以使用原始多行字符串(三重引号)并删除换行符:
s = ''.join(r"""
foo\tbar\n
baz\tqux\n
""".splitlines())
请注意,这不会删除初始空格,因此您必须从第0列开始每行,或者使用删除一致的前导空格:
from textwrap import dedent
s = ''.join(dedent(r"""
foo\tbar\n
baz\tqux\n
""").splitlines())
快速演示:
>>> s = (
... r"foo\tbar\n"
... r"baz\tqux\n")
>>> s
'foo\\tbar\\nbaz\\tqux\\n'
>>> s = ''.join(r"""
... foo\tbar\n
... baz\tqux\n
... """.splitlines())
>>> s
'foo\\tbar\\nbaz\\tqux\\n'
>>> from textwrap import dedent
>>> s = ''.join(dedent(r"""
... foo\tbar\n
... baz\tqux\n
... """).splitlines())
>>> s
'foo\\tbar\\nbaz\\tqux\\n'
r
前缀是文字符号的一部分,而不是结果字符串对象的一部分
在每行使用它,这里没有快捷方式:
s = (
r"foo\tbar\n"
r"baz\tqux\n")
如果您确实有很多这样的前缀,并且发现所有那些r
前缀都很麻烦,那么您可以使用原始多行字符串(三重引号)并删除换行符:
s = ''.join(r"""
foo\tbar\n
baz\tqux\n
""".splitlines())
请注意,这不会删除初始空格,因此您必须从第0列开始每行,或者使用删除一致的前导空格:
from textwrap import dedent
s = ''.join(dedent(r"""
foo\tbar\n
baz\tqux\n
""").splitlines())
快速演示:
>>> s = (
... r"foo\tbar\n"
... r"baz\tqux\n")
>>> s
'foo\\tbar\\nbaz\\tqux\\n'
>>> s = ''.join(r"""
... foo\tbar\n
... baz\tqux\n
... """.splitlines())
>>> s
'foo\\tbar\\nbaz\\tqux\\n'
>>> from textwrap import dedent
>>> s = ''.join(dedent(r"""
... foo\tbar\n
... baz\tqux\n
... """).splitlines())
>>> s
'foo\\tbar\\nbaz\\tqux\\n'