用Python编辑Python脚本
问题描述:
我想永久性地编辑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',
]
问题是捕获单个可变,扩展它并更换它,蟒文件的来源可以是相当大的和多种多样的。
这可能已经做了,但似乎无法找到。
任何想法,提示或建议?
我现在的解决方案:
我只是要在脚本文件
例如底部添加代码
urlpatterns += patterns('core.views',
url(r'^admin/', include(admin.site.urls)),
)
作品现在:)
答
Python源代码,对于这件事情,一个文本文件,那么你很可能打开它,读/写数据的常用方法。我不认为这是一个令人惊讶的好主意,但如果你如果你从一个模板而产生写某种类型的安装...
答
,你可以使用普通的旧的字符串格式化:
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))
(或者代替硬编码该字符串,你可以从文件中读取它)
+1
感谢您的回复。我已经想到了这一点,不幸的是,我试图支持尽可能多的脚本。只是列表/元组将会很好。 – RadiantHex 2011-04-01 22:38:14
@radianthex:你的问题并不十分清楚。你说你正在尝试做某事,但不要说你尝试过什么,或者为什么它不起作用。你可以重新提出你的问题,使其更清楚吗? – 2011-04-01 22:17:07
你想使用python修改python脚本吗?如果是这样,为什么? “导入”它,扩展它并使用它比在物理上修改源代码更容易。 – 2011-04-01 22:19:16
@Daniel:我知道,但我需要在源代码中进行更改,因为对于使用这些模块的其他人而言,这将是更可取的。 – RadiantHex 2011-04-01 22:23:45