Python输出文件名无法替换登录用户名变量的问题求助
问题原因及解决办法
问题根源
你用了**原始字符串(r前缀)**且未使用字符串格式化语法,Python不会自动解析{username}占位符,只会把它当作普通字符输出。getpass.getuser()本身能正确获取用户名,问题出在文件名的字符串处理环节。
几种正确写法
1. f-string(推荐,Python 3.6+)
在字符串前加f前缀,同时保留r前缀处理路径里的反斜杠:
import getpass username = getpass.getuser() output_excel_file = fr'C:\Users\name\OneDrive\Outputs\Outputs_{username}.xlsx'
2. str.format()方法
适用于Python 3.5及以下版本,或习惯这种写法的场景:
import getpass username = getpass.getuser() output_excel_file = r'C:\Users\name\OneDrive\Outputs\Outputs_{}.xlsx'.format(username)
3. 字符串拼接
虽然可行,但可读性不如前两种方式:
import getpass username = getpass.getuser() output_excel_file = r'C:\Users\name\OneDrive\Outputs\Outputs_' + username + '.xlsx'
内容的提问来源于stack exchange,提问作者thepen
相关产品推荐
相关产品推荐

