python - 导入时从同一文件夹获取文件(不硬编码路径)
问题描述
我想知道如何在不硬编码路径的情况下访问important_file.txt。我运行从 myfile.py 导入一些代码的 main.py,我需要在其中阅读 important_file.txt 关于如何做到这一点的任何想法?
文件:
main.py
mydir/
mydir2/
myfile.py
important_file.txt
主文件
from mydir.mydir2.myfile import MyClass
MyClass.dostuff()
我的目录/mydir2/myfile.py
class MyClass:
def dostuff():
pass
# something to read important_file.txt
# without hardcoding it (writing mydir/mydir2/important_file.txt)
命令
python3 main.py
解决方案
您可以使用__file__
读取模块的路径。由于myfile.py
和important_file.txt
位于同一目录中,因此您可以使用它os.path.dirname
来获取目录的名称并将其与您的文件名连接起来以获取文件的绝对路径.txt
。在你myfile.py
做的:
import os
class MyClass:
def dostuff():
dirname = os.path.dirname(__file__)
with open(os.path.join(dirname, "important_file.txt")) as f:
print(f.read())
推荐阅读
- bash - eval 不能在文件中使用别名
- javascript - 需要帮助将 Bot 更新到 Discord.js v12
- r - 后续:从同一个列表的元素中寻找零位的不匹配
- coq - Coq 证明陷入循环
- typescript - 如何在 TypeScript 中提取递归嵌套子属性的类型?
- git - 在 git 中将目录从另一个分支更新到我的分支
- linux - 客户端服务器上安装的二进制程序如何方便地在授权服务器上进行授权(有有效期)?
- excel - 从具有 8 列和两行的工作表中:第一行是第二行中值的排名。将排名靠前的值减 1?
- javascript - 将非结构化对象数组转换为 CSV 格式 - JS
- flutter - 从另一个独立于调用树的有状态小部件触发包含 setState() 的方法