我在尝试打开文本文件时遇到此错误:
IOError: [Errno 2] No such file or directory: 'text.txt'
它在Windows中工作正常,但在linux中它不会打开。我非常确定在我的main.py文件目录中有一个名为text.txt的文件
这是代码:
file_ = open('text.txt', "r+")
load = pickle.load(file_)
print load
var = load
file_.close()
当我在visual studio代码中运行它时它不会打开,但是当在终端中运行文件时一切都很好
答案 0 :(得分:0)
打开名为'text.txt'的文件会在当前workfing目录中打开文件'text.txt'。要查看当前的工作目录,请执行以下操作:
import os
print(os.getcwd())
为了打开与您尝试访问它的'py'文件位于同一目录中的文件,首先找出该目录,然后使用该文件的绝对路径:
import os
current_py_file_path = os.path.abspath(__file__)
current_py_directory_path = os.path.dirname(current_py_file_path)
path_of_the_txt_file = os.path.join(current_py_directory_path, 'text.txt')
实际上,这太冗长了,只是为了解释。这应该足够了:
from os.path import join, dirname
path = join(dirname(__file__), 'text.txt')
顺便说一句,当你打开文件时,这是最简单,最安全的方法:
with open(path, "r+") as file_:
load = pickle.load(file_)
# no need to call close() - it happens automatically
# when you leave the *with* block. And it happens
# no-matter-what (i.e. even if there is an exception).