我是python的新手,并尝试将一个函数的参数调用到另一个脚本中。但我不断收到错误。以下是代码: 输入是以下函数的文本文件。
script1.py
def regex_parameters(value, arg):
a = re.search(r'\d{1}-\d{1}', value)
b = re.search(r'\d{1}-\d{1}', value)
c = re.search(r'\d{1,4}( \w+){1,6},( \w+){1,3}\s\d{1,6}', value)
d = re.search(r'\(?\b[2-9][0-9]{2}\)?[-. ]?[2-9][0-9]{2}[-. ]?[0-9]{4}\b', value)
date = re.search(r'[A-z]{3,10}\s\d{1,2},\s\d{4}', value)
return(value, arg)
script2.py
import script 1
from script1 import *
for i in arg:
identity = regex_parameters(value, i)
if value is not None:
print(i, ":", value.group())
else:
clean = ""
我希望输出为:
a = output of regex
b = output of regex
非常感谢任何帮助。
答案 0 :(得分:1)
在访问它之前,您没有定义变量arg
:
for i in arg: <---
...
做这样的事情:
arg = [... , ... , ...]
for i in arg: <---
...
另一件事,value
没有&#39; .group()&#39;,因为价值仍然是。
您认为value
是Match Object
,因为那是re.search()
returns,但您从未做过value = re.search(...)
。
答案 1 :(得分:0)
如果您正在寻找解析命令行参数,则必须在import sys
中导入sys包script2.py
。
你必须写arg
而不是for i in arg:
for i in sys.argv:
而不是import script1
import sys
from script1 import *
for i in sys.argv:
identity = regex_parameters(value, i)
if value is not None:
print(i, ":", value.group())
else:
clean = ""
结果应该是这样的:
sys.argv
请注意,sys.argv[1:]
中的第一个参数将是文件名,因此如果您想避免这样,您应该拼接第一个参数:UIViewController