我是一名新程序员,在将新字典名称作为参数传递给函数时遇到问题。
我正在尝试创建一个函数,该函数将从网页中提取数据并为主机名创建字典键和整行数据的值。有多个页面将主机名的共性作为键值,我最终将它们连接在一起。
首先,我创建了一个名为control
used 作为我正在搜索的所有主机的密钥文件的列表。然后我将值webpage
、、delimiter
和dictionary name
传递给函数。
这样做时,似乎字典的名称没有传递给函数。
#open key file
f = open("./hosts2", "r")
control = []
for line in f:
line = line.rstrip('\n')
line = line.lower()
m = re.match('(^[\w\d]+)', line)
control.append(m.group())
# Close key file
f.close()
def osinfo(url, delimiter, name=None):
ufile = urllib2.urlopen(url)
ufile.readline()
name = {}
for lines in ufile.readlines():
lines = lines.rstrip("\n")
fields = lines.split(delimiter)
m = re.match(r'(?i)(^[a-z0-9|\.|-]+)', fields[1].lower())
hostname = m.group()
if hostname in control:
name[hostname] = lines
print "The length of osdata inside the function:", len(name)
osdata = {}
osinfo(‘http://blahblah.com/test.scsv’, ';', name='osdata')
print "The length of osdata outside the function", len(osdata)
输出如下:
$./test.py
The length of osdata inside the function: 11
The length of osdata outside the function: 0
似乎该关键字没有被该函数拾取。
这是因为范围吗?