要将文件生成在与程序相同的文件夹下,只需将绝对路径改为相对路径。以下是修改后的代码:
import os # 导入os模块if event == '保存':# 获取当前脚本所在目录,并拼接文件名file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'bmb.txt')with open(file_path, 'a') as f:stuInfo = f'{className}\t{name}\t{sex}\t{xm}'f.write(stuInfo + '\n')
关键修改说明:
-
使用
os.path.abspath(__file__)
获取当前脚本文件的绝对路径(包含文件名) -
使用
os.path.dirname()
提取脚本文件所在的目录路径 -
使用
os.path.join()
自动拼接目录路径和文件名,确保跨平台兼容性(Windows用\,Linux/macOS用/)
效果对比:
| 原代码 | 修改后代码 |
|---|---|
c:\\bmb.txt |
当前脚本所在目录/bmb.txt |
这样修改后,无论程序在哪个目录运行,文件都会保存在程序所在的目录下。例如:
- 如果程序在
D:\project\目录运行 → 文件保存在D:\project\bmb.txt - 如果程序在
/home/user/project/目录运行 → 文件保存在/home/user/project/bmb.txt