如何结合使用f-string与原始字符串字面量(raw string literal)
如何在Python中结合f-string与原始字符串字面量
嗨,这个问题其实很好解决——Python原生就支持把f-string的插值功能和原始字符串的反斜杠保留特性结合起来,只要调整前缀的写法就行!
问题根源
你之前尝试直接把Alex换成{username}并加f前缀,但单独的f-string会把路径里的\U、\D这类开头的反斜杠当成Unicode转义序列处理,导致报错;而单独的原始字符串r又无法识别插值变量{username}。所以需要把两个前缀组合起来。
正确的写法
你只需要同时使用f和r前缀(顺序不影响,fr或rf都可以),这样既可以用{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




