You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何结合使用f-string与原始字符串字面量(raw string literal)

如何在Python中结合f-string与原始字符串字面量

嗨,这个问题其实很好解决——Python原生就支持把f-string的插值功能和原始字符串的反斜杠保留特性结合起来,只要调整前缀的写法就行!

问题根源

你之前尝试直接把Alex换成{username}并加f前缀,但单独的f-string会把路径里的\U\D这类开头的反斜杠当成Unicode转义序列处理,导致报错;而单独的原始字符串r又无法识别插值变量{username}。所以需要把两个前缀组合起来。

正确的写法

你只需要同时使用fr前缀(顺序不影响,frrf都可以),这样既可以用{username}做变量插值,又能保留路径里的反斜杠不被转义。完整代码示例如下:

username = input('Enter name: ')
# 两种写法任选其一都能正常工作
download_folder = fr'C:\Users\{username}\Downloads'
# 或者 download_folder = rf'C:\Users\{username}\Downloads'
print(download_folder)

效果验证

比如当你输入John时,输出会是:

C:\Users\John\Downloads

路径里的反斜杠完全保留,变量也成功替换了,完美解决你的需求~

内容的提问来源于stack exchange,提问作者lammyalex

火山引擎 最新活动