脚本在运行时通过IDLE找到需要的文件,但是在运行时通过终端找不到文件
Script finds the necessary file when running through IDLE, but cannot find the file when running through terminal
我有一个 python 脚本,它使用 Selenium 每小时为我的 类 获取我的成绩,如果我的成绩发生变化,会给我发送一封电子邮件。
我有一个外部文件被引用以查看自上次写入以来是否有任何更改。
当我在空闲状态下按 F5 测试程序时,它按预期工作。但是当我去我的终端并输入 python3 /home/pi/Desktop/gradesNotification/script.py
时,它会一直工作,直到它需要打开包含我的成绩的文本文件。我收到错误:
FileNotFoundError: [Errno 2] No such file or directory: 'grades'
文本文件与脚本位于同一文件夹中。该程序在 运行 通过 IDLE 时工作,但在从终端启动时不工作。
我想解决问题的最简单方法是在代码中指定成绩文件的绝对路径:
"/home/pi/Desktop/gradesNotification/grades"
但是,它不会非常漂亮或灵活 - here 是一篇关于使用 pathlib 库从 Python 处理文件系统访问的好文章。
文件名是根据当前工作目录 cwd
给出的。可能您在 IDLE 中的 cwd 是成绩所在的目录,但您的终端 window 在其他地方。尝试切换到正确的目录,或指定 grades
文件的完整路径。
另一种方法是让您的程序检查自己的位置,然后尝试从那里打开 grades
。
我有一个 python 脚本,它使用 Selenium 每小时为我的 类 获取我的成绩,如果我的成绩发生变化,会给我发送一封电子邮件。
我有一个外部文件被引用以查看自上次写入以来是否有任何更改。
当我在空闲状态下按 F5 测试程序时,它按预期工作。但是当我去我的终端并输入 python3 /home/pi/Desktop/gradesNotification/script.py
时,它会一直工作,直到它需要打开包含我的成绩的文本文件。我收到错误:
FileNotFoundError: [Errno 2] No such file or directory: 'grades'
文本文件与脚本位于同一文件夹中。该程序在 运行 通过 IDLE 时工作,但在从终端启动时不工作。
我想解决问题的最简单方法是在代码中指定成绩文件的绝对路径:
"/home/pi/Desktop/gradesNotification/grades"
但是,它不会非常漂亮或灵活 - here 是一篇关于使用 pathlib 库从 Python 处理文件系统访问的好文章。
文件名是根据当前工作目录 cwd
给出的。可能您在 IDLE 中的 cwd 是成绩所在的目录,但您的终端 window 在其他地方。尝试切换到正确的目录,或指定 grades
文件的完整路径。
另一种方法是让您的程序检查自己的位置,然后尝试从那里打开 grades
。