【问题标题】:Programmatically editing Python source以编程方式编辑 Python 源代码
【发布时间】:2008-08-28 14:23:00
【问题描述】:

这是我认为非常有用的东西。基本上,我希望有一种无需人工干预即可以编程方式编辑 Python 源代码的方法。我想做几件事:

  1. 编辑使用源模块进行配置的 Python 应用程序的配置。

  2. 设置“模板”,以便我可以即时自定义 Python 源文件。这样,我可以在我正在开发的开源应用程序上设置一个“项目”系统,并允许自定义某些文件。

我可能自己写一些可以做到这一点的东西,但我可以看到这会引发很多“细节中的魔鬼”类型的问题。目前有什么方法可以做到这一点,还是我只能硬着头皮自己实施?

【问题讨论】:

    标签: python file-io


    【解决方案1】:

    Python 的标准库为处理 Python 源代码提供了很好的工具;注意 tokenizeparser 模块。

    【讨论】:

    • 如果我可以避免的话,我宁愿不必与 AST 树搞混,所以我会认为你的回答是“没有简单的方法来做到这一点。”
    【解决方案2】:

    大多数这类事情都可以在 Python 中以编程方式确定,使用 sys、os 等模块和特殊的 _file_ 标识符,它告诉您您在文件系统路径中的位置。

    重要的是要记住,当第一次导入模块时,它将执行文件范围内的所有内容,这对于开发与系统相关的行为很重要。例如,os 模块在导入时基本上确定了您使用的操作系统,然后相应地调整其实现(通过导入与 Linux、OSX、Windows 等相对应的另一个模块)。

    此功能非常强大,您可能正在寻找类似的东西。 :)

    [编辑] 我还在一些罕见的骇人听闻的实例中使用了 socket.gethostname()。 ;)

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,我只是打开了文件并做了一些替换:然后在 Python 解释器中重新加载文件。这很好用并且很容易做到。

      否则你必须使用一些 conf 对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-01
        • 2012-10-01
        • 2011-04-27
        • 1970-01-01
        • 2020-10-16
        • 2010-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多