gpt4 book ai didi

python原始字符串赋值

转载 作者:太空狗 更新时间:2023-10-30 02:05:52 25 4
gpt4 key购买 nike

给定一个文件包含如下行:

(?i:\bsys\.user_catalog\b)

在读取这些行时,我希望该值是一个原始字符串(未转义),这意味着,在内存中,行应该是

r'(?i:\bsys\.user_catalog\b)'

代替

(?i:\bsys\.user_catalog\b)

传递给 sqlobject 等库时会转义。

例如,对于 sqlobject,如果我声明

Table(column=r'(?i:\bsys\.user_catalog\b)')

如果我声明,我会得到想要的结果

Table(column='(?i:\bsys\.user_catalog\b)')

我没有。

所以问题基本上是,当我不处于声明/赋值模式(例如 a = r'string')时,我可以传递一个原始字符串,而是该字符串已经在内存中。

最佳答案

原始字符串表示法仅在 Python 源代码中使用;所有声明为原始字符串的字符串都被“转换”为普通字符串,并在“编译时”期间添加了必要的转义序列(不同于(在 Python 2 中)两种不同的字符串类型字符串/Unicode 字符串):

>>> r"\b"
'\\b'
>>> "Hello"
'Hello'
>>> u"Hello"
u'Hello'

如果您从文件中读取字符串,它已经被正确转义了。

(假设 test.txt 包含 (?i:\bsys\.user_catalog\b)):

f = open("test.txt").read()
print f
print repr(f)

输出:

(?i:\bsys\.user_catalog\b)
'(?i:\\bsys\\.user_catalog\\b)'

关于python原始字符串赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8254218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com