Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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_Escaping - Fatal编程技术网

如何在python中编写字符串文本而不必转义它们?

如何在python中编写字符串文本而不必转义它们?,python,string,escaping,Python,String,Escaping,有没有一种方法可以在python中声明一个字符串变量,使其中的所有内容都自动转义,或者具有其文本字符值 很明显,我不是在问如何用斜杠逃避引用。我所要求的是一种通用的方法,用于将所有内容转换为字符串文字,这样我就不必手动遍历和转义非常大的字符串。有人知道解决办法吗?谢谢 原始字符串文本: >>> r'abc\dev\t' 'abc\\dev\\t' 如果要处理非常大的字符串,特别是多行字符串,请注意三引号语法: 您可以在此处找到Python的字符串文字文档: 在这里: 最简

有没有一种方法可以在python中声明一个字符串变量,使其中的所有内容都自动转义,或者具有其文本字符值

很明显,我不是在问如何用斜杠逃避引用。我所要求的是一种通用的方法,用于将所有内容转换为字符串文字,这样我就不必手动遍历和转义非常大的字符串。有人知道解决办法吗?谢谢

原始字符串文本:

>>> r'abc\dev\t'
'abc\\dev\\t'

如果要处理非常大的字符串,特别是多行字符串,请注意三引号语法:


您可以在此处找到Python的字符串文字文档:

在这里:

最简单的示例是使用“r”前缀:

ss = r'Hello\nWorld'
print(ss)
Hello\nWorld

没有这样的事。看起来您需要Perl和Shell中类似“heredocuments”的东西,但Python没有

使用原始字符串或多行字符串只意味着需要担心的事情更少。如果您使用原始字符串,那么您仍然必须围绕一个终端“\”,而对于任何字符串解决方案,如果数据中包含结束符“、”、“”或“”,则必须担心结束符

也就是说,没有办法获得字符串

 '   ''' """  " \
正确地存储在任何Python字符串文本中,无需某种内部转义。

(假设不需要直接从Python代码中输入字符串)

为了避开安德鲁·达尔克指出的问题,只需在文本文件中键入文本字符串,然后使用它

input_ = '/directory_of_text_file/your_text_file.txt' 
input_open   = open(input_,'r+')
input_string = input_open.read()

print input_string
这将打印文本文件中任何内容的文本,即使它是

 '   ''' """  “ \

不是很有趣,也不是最理想的,但可能很有用,特别是当你有3页需要字符转义的代码时

如果字符串是变量,请对其使用.repr方法:

>>> s = '\tgherkin\n'

>>> s
'\tgherkin\n'

>>> print(s)
    gherkin

>>> print(s.__repr__())
'\tgherkin\n'

这个结构引入换行字符吗?也就是说,变量
a
将包含一个带有两个换行符的字符串?@madpysicator:是的,在上述情况下,结果字符串将包含两个换行符。明白。如果在这个字符串上使用了“split()”,那么默认情况下它会按行分割吗?@madpysicator.split()的默认值是按空格分割,换行符是空格。我以前用过这个,效果很好。有两件事需要注意:其他行上的缩进(空格)是可取的;如果长字符串恰好以
结尾,那就不好了,因为整件事都会以
结尾,这是一个语法错误。但这不被认为是糟糕的样式吗?什么,小黄瓜?你可以用
repr(s)
来代替更好的样式
>>> s = '\tgherkin\n'

>>> s
'\tgherkin\n'

>>> print(s)
    gherkin

>>> print(s.__repr__())
'\tgherkin\n'