首页 > 解决方案 > 在 Python 中附加路径目录时遇到问题

问题描述

以下脚本对我来说运行得很好:

def readData(fname):
    with open(fname, encoding="utf8") as f:
        read_data = f.read()
    return read_data

data = readData('D:/bar/foo.txt')

但是当我尝试运行它时:

from sys import path
path.append('D:/bar/')

def readData(fname):
    with open(fname, encoding="utf8") as f:
        read_data = f.read()
    return read_data

data = readData('foo.txt')

“with”行产生这个错误:

FileNotFoundError: [Errno 2] No such file or directory: 'foo.txt'

当我打印sys.path时,它确实包含bar目录。

为什么 Python 找不到我的文件?加载时需要指定目录吗?

标签: pythonpath

解决方案


正如 Bart 所提到sys.path的,它告诉解释器应该在哪里查找您尝试通过import语句使用的模块。

sys.pathopen()与内置函数(文档)没有任何关系。

file您提供给函数的参数open()应该是文件的绝对路径,或工作目录的相对路径。

您的第一个示例有效,因为您提供了文件的绝对路径。您的第二个示例(大概)不起作用,因为您正在执行的脚本foo.txt不在同一个目录中(或者如果您以交互方式使用解释器,foo.txt则不在工作目录中)。


推荐阅读