python-3.x 阅读模块内的文件

u5rb5r59  于 2023-03-13  发布在  Python
关注(0)|答案(1)|浏览(132)

我在纠结--我想--一个非常简单的问题。
我正在开发一个自定义软件包,其结构如下:

mypackage
|      |-> __init__.py
|      |-> module1.py
|      |-> module2.py
|      |-> module3.py
|      |-> externalfile.xml

外部文件由模块1中的函数读取。
如果我在terminal中启动module 1,显然可以很容易地做到这一点,但是当我试图在另一个脚本中启动该函数时,我会有一个FileNotFoundError跟踪。
我的问题是:为什么在这种情况下我不能打开一个文件,生活在包本身?
x一个一个一个一个x一个一个二个一个x一个一个三个一个
错误:

Traceback (most recent call last):
  File --myOtherScript.py--, line xx, in <module>
    from mypackage import module1
  File "-\Programs\Python\Python310\lib\site-packages\mypackage\__init__.py", line xx, in <module>
    with open('exeternalfile.xml', 'r') as fh:
FileNotFoundError: [Errno 2] No such file or directory: 'externalfile.xml'
6rvt4ljy

6rvt4ljy1#

# module1.py

import os

BASE_DIR = os.path.dirname(os.path.abspath(__file__))  # Returns the absolute path to your package folder

def myfunction():
    with open(os.path.join(BASE_DIR, "externalfile.xml"), 'r') as fh:
        xml = fh.read()
    return xml

相关问题