到目前为止,我在所有文件的顶部都有这样的结构(我处理原始数据并使用pandas进行分析,因此我正在处理大量原始数据):
raw_location = 'C:/Users/OneDrive/raw/'
output_location = 'C:/Users/OneDrive/output/'
mtd_location = 'C:/Users/OneDrive/modified/'
py_location = 'C:/Users/OneDrive/py_files/'
有许多不同的路径,一些.py文件使用相同的路径名来引用不同的路径(例如,raw_location是不同文件的数据来源)。它变得一团糟。
在这些位置下,我有一个文件名列表(import_filename,modified_filename,dashboard_filename)。总而言之,我在每个文件上浪费了10多行代码,只是为了指定变量名。我知道必须有更好的方法来做到这一点。
到目前为止,我将.py和.ipynb文件移动到主目录中的文件夹中,这意味着我可以使用相对路径,例如' ../ raw'哪有帮助。我可以创建一个包含其中所有路径和文件名变量的文件,然后读取该文件而不是列出代码顶部的路径吗?这里的最佳做法是什么?
答案 0 :(得分:0)
编辑:在审核了以下评论并深入学习此问题之后 - 我添加了两个额外选项:
1)使用python“configparser” - https://docs.python.org/2/library/configparser.html
实施例: https://stackoverflow.com/a/29479549/5088142
2)正如BlackJack所提到的 - 可以从导入的文件中删除“类” 您可以编写配置文件,例如命名为: LDconfig.py
raw_location = 'C:/Users/OneDrive/raw/'
output_location = 'C:/Users/OneDrive/output/'
mtd_location = 'C:/Users/OneDrive/modified/'
py_location = 'C:/Users/OneDrive/py_files/'
在您的文件中,您将使用以下命令从此LDconfig.py文件中导入此类:
import LDconfig
在您的文件中,您可以使用:importedmodule.variable访问数据,例如
LDconfig.raw_location
3)您可以编写配置文件,例如使用类
命名: LDconfig.pyclass LDconfig:
raw_location = 'C:/Users/OneDrive/raw/'
output_location = 'C:/Users/OneDrive/output/'
mtd_location = 'C:/Users/OneDrive/modified/'
py_location = 'C:/Users/OneDrive/py_files/'
在您的文件中,您将使用以下命令从此LDconfig.py文件中导入此类:
from LDconfig import LDconfig
在您的文件中,您可以使用:classname.variable访问数据,例如
LDconfig.raw_location