我有以下代码:
def main():
#init
#Load config.
import localconfig
print localconfig.name
#update mac adress db, if at all possible:
try:
from maclist import maclist
except:
import urllib2
print "Fetching MAC adress db."
maclist = urllib2.urlopen(localconfig.url)
fl = open("maclist.py","w")
fl.write(
"#maclist.py generated by "+localconfig.name+"""
#Based on """+localconfig.url+"""
maclist = {}
""")
print "Generating maclist.py"
for line in maclist:
if "#" in line: line=line[:line.index("#")]
line = line.split()
if line:
if "-" in line[0]:
line[0]=line[0].replace("-",":")
if "/" in line[0]:
ndex = line[0].index("/")
ndex = (int(line[0][ndex+1:])//8)*3
line[0]=line[0][:ndex-1]
line=[repr(part) for part in line]
line = "maclist["+line[0]+"]="+line[1]
fl.write("=".join(line.split())+"\n")
fl.close()
from maclist import maclist
print "Succesfully loaded maclist.py"
这确实有效,但我不喜欢我正在导入(并因此运行)从interweb下载的内容。有没有更好的方法来解决这个问题? (请记住,我不想每次都重新下载,只有这是第一次(或者如果它已被删除))。
答案 0 :(得分:1)
我建议您学习如何使用JSON,这样您就可以拥有这样的文件:
{<id>:<mac>,<id>:<mac>}
(是的,它类似于Python的dict
,您可以使用与正确解析器相同的方式使用它)