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)
我遇到任何涉及打开文本文件的 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)