我在“ mainDirectory / subdirectory / myCode.py”中有一个python文件,在我的代码中,我想在“ mainDirectory / some_data.csv”中引用一个.csv文件,我不想使用绝对路径,因为我在不同的操作系统上运行代码,使用绝对路径可能会造成麻烦。简而言之,有没有办法使用python中的相对路径引用当前目录的上层目录?
我知道如何使用相对路径引用当前目录的子目录。但我正在寻找使用相对路径寻址到上层目录的方法。我不想使用绝对浴,因为该文件将在不同操作系统中的不同文件夹中运行。
答案 0 :(得分:0)
此问题可能与此处回答的问题相同-Importing modules from parent folder
答案 1 :(得分:0)
您始终可以在运行时使用os软件包提供的API导出绝对路径。
import os
dirname = os.path.dirname(__file__)
filename = os.path.join(dirname, 'relative/path/to/file/you/want')
完整的答案始终是单击即可。 Relative paths in Python
答案 2 :(得分:0)
如果您查看Python文档,则会发现该语言并非旨在用于这种用途。相反,您将希望尝试重构目录以将myCode.py
放在父级目录中,例如mainDirectory
。
mainDirectory
│
└───myCode.py
│
└───subdirectory
│
│ some_data.csv
您正面临PYTHONPATH性质的问题。此处有一篇有关处理PYTHONPATH的精彩文章:
https://chrisyeh96.github.io/2017/08/08/definitive-guide-python-imports.html
如果您是该语言的新手(或者您已经使用多年了!)来导航Python导入语句,可能会遇到挑战。阅读用于导入的PEP8约定,并确保您的项目符合标准语言约定,可以节省大量时间,并且在需要重新构建目录树时可以节省很多麻烦的git commits
。
答案 3 :(得分:0)
os.path
中可以使用几种工具:
from os.path import dirname
upper = dirname(dirname(__filepath__))
此处链接到有关访问上层目录的更全面的答案: How do I get the parent directory in Python?