Python 如何一次使用多个字符串文字

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! :)' 但是: 如何指定多个字符串文字?字符串插值仅限

我有一个字节字符串,我正试图在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! :)'
但是:


如何指定多个字符串文字?

字符串插值仅限于字符串,不能用于字节。这是针对:

出于同样的原因,我们不支持
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! :)'