python - 脚本通过 IDLE 运行时找到必要的文件,但通过终端运行时找不到该文件

标签 python python-3.x linux scripting raspbian

我有一个 python 脚本,它使用 Selenium 每小时获取我的类(class)成绩,并在我的成绩发生更改时向我发送电子邮件。

我有一个外部文件,可以引用该文件来查看自上次写入以来是否有任何更改。

当我在空闲状态下按 F5 测试程序时,它按预期工作。但是当我进入终端并输入 python3 /home/pi/Desktop/gradesNotification/script.py它会一直工作,直到需要打开包含我的成绩的文本文件。我收到错误:

FileNotFoundError: [Errno 2] No such file or directory: 'grades'

文本文件与脚本位于同一文件夹中。该程序在 IDLE 运行时可以工作,但从终端启动时则无法工作。

最佳答案

文件名是根据当前工作目录cwd给出的。有可能你的 IDLE 中的 cwd 是成绩所在的目录,但你的终端窗口在其他地方。尝试更改为正确的目录,或指定 grades 文件的完整路径。

另一种方法是让您的程序检查自己的位置,并尝试从那里打开grades

关于python - 脚本通过 IDLE 运行时找到必要的文件,但通过终端运行时找不到该文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60233639/

相关文章:

c - Arch Linux 上的 AVR

python - 如何在 'scons' 中为命令生成器指定 COMSTR

python - pyQt4:QWidget 子类不响应新的 setStyleSheet() 背景颜色

python - 如何在 Python 中的这个嵌套字典中搜索特定键?

python-3.x - 如何绘制多类数据的 ROC 曲线并从混淆矩阵测量 MAUC

Python:为什么 “~” 现在包含在 urllib.parse.quote() 的保留字符集中?

python - 类型错误 : takes exactly 1 argument (0 given) - Scrapy

python - 如何在python代码中使用sqoop命令进行增量导入

linux - 软件负载平衡器是否管理双向 SSL 连接?如果是这样,如何?

linux - elf 文件自以为小,其实很大!无法生成 .bin 和 .hex 文件