2008-08-28 292 views
7

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

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

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

我或许可以自己写一些能够做到这一点的东西,但是我可以看到开放了很多“魔鬼的细节”类型的问题。目前有没有办法做到这一点,或者我只是不得不硬着头皮来实现它自己?

回答

3

Python的标准库为使用Python源代码提供了很好的工具;请注意0​​和parser模块。

+1

如果我可以避免的话,我宁愿不要使用AST树,所以我会把你的答案表示为“没有简单的方法来做到这一点”。 – 2008-08-28 20:13:14

0

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

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

0

大部分这些东西都可以用Python编程式地确定,使用像sys,os这样的模块和特殊的_file_标识符来告诉你你在文件系统路径中的位置。

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

这个功能有很多功能,沿着这些线可能是你要找的东西。 :)

[编辑]我也使用socket.gethostname()在一些罕见的,hackish实例。 ;)