PyCharm中os.getcwd()返回系统目录而非脚本目录问题求助
解决os.getcwd()返回C:\Windows而非脚本目录的问题
问题原因
os.getcwd()返回的是Python进程启动时的工作目录,而非脚本文件本身的目录。之前PyCharm默认将工作目录设为脚本所在路径,现在可能是运行配置被修改,或是启动方式导致工作目录变成了系统默认的C:\Windows。
解决方法
1. 修正PyCharm运行配置
- 打开PyCharm顶部菜单栏的
Run > Edit Configurations - 在对应运行配置的
Working directory选项中,选择当前脚本所在的目录(可直接点击右侧文件夹图标选择,或使用变量$PROJECT_DIR$指向项目根目录) - 保存配置后重新运行脚本
2. 代码层面强制获取脚本目录(推荐)
直接通过脚本文件的绝对路径获取所在目录,彻底摆脱对工作目录的依赖,代码更健壮:
import os import sys # 获取当前脚本的绝对路径所在目录 script_dir = os.path.dirname(os.path.abspath(__file__)) sys.path.append(script_dir) # 拼接SQL文件的绝对路径,避免路径错误 sql_file_path = os.path.join(script_dir, 'sql', 'prem_20_22.txt') with open(sql_file_path, 'r') as f: prem_20_22_query = f.read()
注:使用with语句打开文件更安全,能自动关闭文件句柄
3. 命令行启动时手动指定工作目录
如果是通过命令行运行脚本,先切换到脚本所在目录再执行:
cd "D:\path\to\your\script" python your_script.py
内容的提问来源于stack exchange,提问作者mf17
相关产品推荐
相关产品推荐

