欢迎您访问新疆栾骏商贸有限公司,公司主营电子五金轴承产品批发业务!
全国咨询热线: 400-8878-609

新闻资讯

技术学院

如何在Python中将当前登录用户名动态添加到输出文件名中

作者:聖光之護2026-01-07 00:00:00

本文讲解如何使用python的f-string或format方法,将系统当前登录用户名自动插入到文件路径中,解决变量未被正确解析导致文件名显示为字面量{username}的问题。

在Python中,若直接在字符串中写入{username}(如 'Outputs_{username}.xlsx'),该大括号会被视为普通字符,而非变量占位符——这是因为普通字符串不支持运行时变量插值。只有使用格式化字符串(如f-string、.format() 或 % 格式化)时,变量值才会被实际替换。

✅ 正确做法是使用 f-string(推荐)
在字符串前加 f 前缀,并将变量名置于 {} 中。注意:当路径中含反斜杠 \ 时,建议使用原始字符串(r 前缀)避免转义冲突。二者可结合使用为 rf"":

import getpass

username = getpass.getuser()
output_excel_file = rf"C:\Users\name\OneDrive\Outputs\Outputs_{username}.xlsx"
print(output_excel_file)  # 示例输出:C:\Users\name\OneDrive\Outputs\Outputs_tomsmith.xlsx

⚠️ 注意事项:

  • 不要混用 r 和 f 的顺序(必须是 rf,而非 fr —— 虽然CPython目前兼容 fr,但 rf 是PEP 498明确推荐的标准写法);
  • 若路径中需兼容不同操作系统,建议改用 pathlib 构建路径,提升可移植性:
from pathlib import Path
import getpass

username = getpass.getuser()
base_dir = Path(r"C:\Users\name\OneDrive\Outputs")
output_excel_file = base_dir / f"Outputs_{username}.xlsx"

❌ 错误示例(变量未展开):

output_excel_file = "C:\Users\name\OneDrive\Outputs\Outputs_{username}.xlsx"  # {username} 是纯文本
output_excel_file = r"C:\Users\name\OneDrive\Outputs\Outputs_{username}.xlsx"   # 同样无效:r-string 禁用所有转义和插值

? 补充:除f-string外,也可使用 .format() 方法(兼容旧版Python):

output_excel_file = "C:\\Users\\name\\OneDrive\\Outputs\\Outputs_{}.xlsx".format(username)

注意此处需双写反斜杠 \\ 以在普通字符串中表示单个 \,而f-string+raw组合(rf"")可避免此繁琐写法。

总结:动态生成带用户名的文件名,核心在于选择支持变量插值的字符串格式化方式,并合理处理Windows路径中的反斜杠。f-string + raw 字符串(rf"")是现代Python中最简洁、安全且可读性强的解决方案。