用Python编辑Python脚本
我正在尝试永久性地编辑一个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源代码其实就是一个文本文件,所以你可以像平常一样打开它,读取或写入数据。我觉得这样做并不是特别好,但如果你是在写某种安装程序的话……