【发布时间】:2020-04-15 22:28:43
【问题描述】:
我正在开发一个文件结构相当简单的 python3 应用程序,但我在读取脚本中的文本文件时遇到问题,这两个文件的文件结构都低于调用它们的脚本。绝对清楚,文件结构如下:
app/
|- cli-script
|- app_core/
|- dictionary.txt
|- lib.py
cli-script 调用lib.py,而lib.py 需要dictionary.txt 来做我需要它做的事情,所以它会被打开并读入lib.py。
cli-script 的基本内容如下所示:
from app_core import lib
def cli_func():
x = lib.Lib_Class()
x.lib_func()
lib的问题区域在这里:
class Lib_Class:
def __init__(self):
dictionary = open('dictionary.txt')
我遇到的问题是,虽然我有这个文件结构,但 lib 文件找不到字典文件,返回 FileNotFoundError。出于可移植性的原因,我宁愿只使用相对路径,否则我只需要使解决方案与操作系统无关。符号链接是我想出的最后选择,但我想不惜一切代价避免它。我有哪些选择?
【问题讨论】:
-
请展示最简单的代码,突出您遇到的问题。
-
@JonathonReinhart 这只是一个简单的
open(dictionary.txt)调用导致找不到文件错误 -
请提供
cli-script中调用lib.py的代码,以及lib.py中访问文本文件的代码。两者都在上下文中。 -
@blueteeth 刚刚编辑了帖子以包含代码片段
-
我很惊讶
lib导入时app-core被命名为这样(带有连字符),并且没有__init__.py。我希望app-core被称为app_core,并且会有一个空文件app_core/__init__.py。
标签: python python-3.x file-io io file-not-found