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

Python 创建文件以查找路径和文件名?,python,Python,到目前为止,我在所有文件的顶部都有这样的结构(我处理原始数据并使用pandas进行分析,因此我正在处理大量原始数据): 有许多不同的路径,一些.py文件使用相同的路径名来引用不同的路径(例如,原始位置是数据源,不同文件的数据源不同)。它变得一团糟 在“位置”下,我有一个文件名列表(导入文件名、修改文件名、仪表板文件名)。总而言之,我在每个文件上浪费了10多行代码来指定变量名。我知道一定有更好的办法 到目前为止,我已将.py和.ipynb文件移动到主目录中的文件夹中,这意味着我可以使用相对路径,如

到目前为止,我在所有文件的顶部都有这样的结构(我处理原始数据并使用pandas进行分析,因此我正在处理大量原始数据):

有许多不同的路径,一些.py文件使用相同的路径名来引用不同的路径(例如,原始位置是数据源,不同文件的数据源不同)。它变得一团糟

在“位置”下,我有一个文件名列表(导入文件名、修改文件名、仪表板文件名)。总而言之,我在每个文件上浪费了10多行代码来指定变量名。我知道一定有更好的办法


到目前为止,我已将.py和.ipynb文件移动到主目录中的文件夹中,这意味着我可以使用相对路径,如“../raw”,这很有帮助。我是否可以创建一个包含所有路径和文件名变量的文件,然后读取该文件,而不是在代码顶部列出路径?这里的最佳做法是什么?

编辑:在查看下面的评论并深入了解此问题后,我添加了两个附加选项:

1) 使用python“configparser”——

示例:

2) 正如BlackJack提到的,可以从导入的文件中删除“类” 您可以编写配置文件,例如名为:LDconfig.py

在文件中,您将使用以下命令从此LDconfig.py文件导入此类:

import LDconfig
from LDconfig import LDconfig
在文件中,您可以使用:importedmodule.variable访问数据,例如

LDconfig.raw_location
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文件导入此类:

import LDconfig
from LDconfig import LDconfig
在您的文件中,您可以使用:classname.variable访问数据,例如

LDconfig.raw_location
LDconfig.raw_location

您应该编写一个配置文件,将所有信息存储在保存为json文件的字典中?很难知道这里的意图是什么;也许完全重写脚本可以解决这个过程中的这些问题。嗯,我可以重写。不过,我想了解一些可以遵循的最佳实践。我注意到,当我查看其他人的代码时,我没有看到一堆显式路径,但我不知道避免这种情况的最佳方法。我从Excel转到了pandas/python,所以我只是慢慢地变得更有效率和更有条理。酷,这很管用。与创建文本文件或其他东西相比,这是一个更好的选择吗?我不明白这门课的意义。模块本身已经是一个名称空间,因此如果不使用该类,则只需执行
import LDconfig
并使用
LDconfig.raw\u location
访问数据即可。这正是像Django或Sphinx这样的程序所做的。@LanceDacey如果编写一个模块而不是INI或JSON文件更好,这取决于。模块的优点是使用整个Python语言来定义和操作值。“dumb”配置文件的优点是“安全”(不能包含恶意代码),并且它可以被其他程序操作,可能是用Python以外的其他语言操作。我删除了该类,我将使用Python模块,因为没有最终用户可以访问它(这只是为了在pandas中进行数据操作,没有用户名或密码等)。既然我将pandas作为pd、numpy作为np导入,datetime作为dt、pytz等导入我的每个文件(我有十几个文件),那么导入是否也应该在配置文件中?