用Python编辑Python脚本

0 投票
2 回答
2119 浏览
提问于 2025-04-16 14:55

我正在尝试永久性地编辑一个Python脚本中的变量。


比如说。

urlpatterns = patterns('core.views',
)

变成

urlpatterns = patterns('core.views',
    url(r'^admin/', include(admin.site.urls)),
)

比如说。

items = [
    'unicorn',
    'cats',
]

变成

items = [
    'unicorn',
    'cats',
    'knights',
    'panthers',
]

问题在于如何捕捉到单个变量,扩展它并替换掉,因为Python文件的内容可能非常庞大和复杂。

这可能已经有人做过了,但我找不到相关的信息。

有没有什么想法、建议或者提示呢?


我目前的解决方案:

我打算在脚本文件的底部添加代码。

比如说。

urlpatterns += patterns('core.views',
    url(r'^admin/', include(admin.site.urls)),
)

现在这样可以工作 :)

2 个回答

1

如果你是从一个模板生成内容的话,可以使用简单的字符串格式化:

tmpl = """import foo

bar = 12345

myList = [
    1,
    2,
    %s
]

otherStuff = %s"""

# figure out the values that need to go there

with f = open(filename, 'w+'):
    f.write(tmpl % (item1, item2))

(另外,你也可以选择不直接写死那个字符串,而是从文件中读取它)

或者你可以使用Python的许多模板引擎中的一种。

1

Python源代码其实就是一个文本文件,所以你可以像平常一样打开它,读取或写入数据。我觉得这样做并不是特别好,但如果你是在写某种安装程序的话……

撰写回答