Python 如何一次使用多个字符串文字
我有一个字节字符串,我正试图在re中使用它:Python 如何一次使用多个字符串文字,python,string,byte,rawstring,Python,String,Byte,Rawstring,我有一个字节字符串,我正试图在re中使用它: user_name = 'Simon' string = 'Hello {user_name}, nice to see you! :)' 但是,除了使用字节外,re字符串还应该是原始字符串(r) 那么如何一次指定字节、f字符串和原始字符串呢 我试过: user_name = rb'Simon' string = brf'Hello {user_name}, nice to see you! :)' 但是: 如何指定多个字符串文字?字符串插值仅限
user_name = 'Simon'
string = 'Hello {user_name}, nice to see you! :)'
但是,除了使用字节外,re字符串还应该是原始字符串(r
)
那么如何一次指定字节、f字符串和原始字符串呢
我试过:
user_name = rb'Simon'
string = brf'Hello {user_name}, nice to see you! :)'
但是:
如何指定多个字符串文字?字符串插值仅限于字符串,不能用于字节。这是针对: 出于同样的原因,我们不支持
bytes.format()
,您可能不支持
将“f”与“b”字符串文字组合。主要问题是
对象的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuu()方法可能返回不正确的Unicode数据
与字节字符串兼容
解决方法是手动将字符串编码为字节:
>>> rf'Hello {user_name}, nice to see you! :)'.encode()
b'Hello Simon, nice to see you! :)'
更准确的说法是,您试图让一个变量同时保存3种不同类型的数据吗?@ScottHunter No.我试图保存一个原始字节数组(替换一个值,因此是f字符串)。我想完全取消r
,但是re
模块似乎极力推荐它。
In [2]: string = br'Hello {}, nice to see you! :)'.format(user_name)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-9-36faa39ba31d> in <module>()
----> 1 string = br'Hello {}, nice to see you! :)'.format(user_name)
AttributeError: 'bytes' object has no attribute 'format'
In [3]:
>>> rf'Hello {user_name}, nice to see you! :)'.encode()
b'Hello Simon, nice to see you! :)'