Sublime Text 3运行Python 3.9脚本无法生成存储用户输入的txt文件怎么办
问题原因及解决方法
你遇到的问题核心是Sublime运行Python脚本的两个常见坑:
- 相对路径依赖程序运行时的工作目录,Sublime默认构建系统的工作目录不是脚本所在文件夹,导致文件生成到了其他路径
- Sublime默认构建系统不支持交互输入,如果你运行后没有输入
name的入口,代码会卡在input行,根本不会执行到写文件的逻辑
第一步:确认文件实际生成位置
在你的代码最开头添加以下代码,运行后打印的路径就是文件实际保存的位置:
import os print("当前程序工作目录:", os.getcwd())
你可以直接前往该路径找到已经生成的proba.txt文件。
永久解决方法(二选一即可)
方法1:代码中指定绝对路径
直接把文件路径绑定到脚本所在目录,不管在哪运行都能把文件存在脚本同文件夹:
import os # 获取当前脚本所在的文件夹绝对路径 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接得到目标文件的绝对路径 filename = os.path.join(script_dir, "proba.txt") name = input("Give me your name. ") with open(filename, 'a') as f: f.write(f" {name.title()}\n")
方法2:修改Sublime构建系统配置
让Sublime运行Python脚本时自动切换工作目录到脚本所在文件夹:
- 打开Sublime,依次点击
Tools > Build System > New Build System - 替换默认内容为以下配置:
{ "cmd": ["python3", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python", "working_dir": "$file_path", "shell": true }
- 保存为
Python3_Custom.sublime-build,之后运行脚本时在Tools > Build System中选中该配置即可
如果需要支持input交互输入,还可以安装SublimeREPL插件,或者直接打开系统终端,cd到脚本所在目录后执行python 你的脚本文件名.py运行。
内容的提问来源于stack exchange,提问作者roninbeast
相关产品推荐
相关产品推荐

