Dan D 的进一步评论.. 试着把它放在你的 open() 调用前面:
from os.path import abspath
print(abspath('warcards_directions.txt'))
您会看到 python 在不同的地方查找,具体取决于您从哪里运行它.. 因为它查找与当前工作目录相关的文件,这取决于您运行 python 的方式。
这是新手的常见问题。有关一些解决方案,请参阅此处How to import files in python using sys.path.append?(请注意,该帖子中的潜在问题与此问题相同。他们正在尝试导入文件,而我们在这里尝试打开一个文件这一事实并不太重要) .
另外我要补充一点,我经常引用与脚本本身相关的东西......就像这样:
from os.path import abspath, join, dirname
script_dir = dirname(__file__)
txt_path = abspath(join(script_dir, "..", "path", "to", "warcards_directions.txt"))
如果您的 txt 文件和 python 脚本相对于彼此位于相同的位置(但可能安装在不同的位置),则此方法有效。
例如以上假设您的脚本位于 C:\Foo\scripts\script.py 中,而您的文本文件位于 C:\Foo\path\to\warcards_directions.txt 中。上面的方法在你运行脚本的任何地方都可以正常工作,如果你移动或重命名 C:\Foo 目录(例如到 C:\Program Files\Bar),它就会工作。但是,如果您决定将 scripts.py 向下移动到 C:\Foo 目录中(此时您更改 txt_path 的初始化方式以修复),它将中断。