文本文件无法打开(linux python 2.7)

时间:2018-03-03 10:00:43

标签: python

我在尝试打开文本文件时遇到此错误:

 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代码中运行它时它不会打开,但是当在终端中运行文件时一切都很好

1 个答案:

答案 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).