创建文件以查找路径和文件名?

时间:2016-04-05 12:35:35

标签: python

到目前为止,我在所有文件的顶部都有这样的结构(我处理原始数据并使用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'哪有帮助。我可以创建一个包含其中所有路径和文件名变量的文件,然后读取该文件而不是列出代码顶部的路径吗?这里的最佳做法是什么?

1 个答案:

答案 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.py
class 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