Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中从多个文本创建单个原始字符串?_Python_String_String Literals - Fatal编程技术网

如何在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\

我想在Python中将相邻字符串组合成单个“原始”字符串,例如

>>> 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'