Python 无法打开 IDE (Windows 10) 之外的文本文件

Python cannot open a text file outside of an IDE (Windows 10)

我遇到任何涉及打开文本文件的 python 脚本的问题。我已经尝试了各种 IDEs,包括 VSCode 和 PyCharm,并且都按预期工作。但是一旦我 运行 python 脚本真正关闭(由于打开外部文件时出错,通过注释掉代码的各个部分发现)。

这是一个非常简单的脚本,运行在 IDE 中很好,但在实际打开 python 文件时却不行:

main.py:

print("This is a demo of the problem.")
file = open("demofile.txt", "r") #this line causes an error outside of IDE
print(file.readlines())
file.close()

demofile.txt:

this is line 1
this is line 2
this is line 3

这两个文件都存储在桌面的同一个文件夹中,但是当我将代码修改为:

import os
try:
    file = open("demofile.txt", "r") 
    file.close()
except:
    print(os.path.abspath("demofile.txt"))
    print(os.path.abspath("main.py"))

我得到了意外的输出:

C:\WINDOWS\system32\demofile.txt
C:\WINDOWS\system32\main.py

如有任何帮助,我们将不胜感激。

处理输出

C:\WINDOWS\system32\demofile.txt
C:\WINDOWS\system32\main.py

来自

import os
try:
    file = open("demofile.txt", "r") 
    file.close()
except:
    print(os.path.abspath("demofile.txt"))
    print(os.path.abspath("main.py"))

输出并不一定意味着文件存在。

观察:

>>> import os
>>> os.path.abspath("filethatdoesnotexist.txt")
'C:\Users\User\AppData\Local\Programs\Python\Python39\filethatdoesnotexist.txt'
>>> 

你要做的是使用os.path.exists()方法:

import os
try:
    file = open("demofile.txt", "r") 
    file.close()
except:
    print(os.path.exists("demofile.txt"))
    print(os.path.exists("main.py"))

所以基本上,当您 运行 文件时,Python 正在以当前路径为 C:\WINDOWS\system32 的方式工作,因此如果 demofile.txt 不在那里, 你得到错误。


要查看错误类型,只需替换

except:

except Exception as e:
    print(e)