python将函数的参数调用到另一个脚本中

时间:2018-02-11 04:48:16

标签: python-3.x

我是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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

在访问它之前,您没有定义变量arg

for i in arg: <---
    ...

做这样的事情:

arg = [... , ... , ...]
for i in arg: <---
    ...

另一件事,value没有&#39; .group()&#39;,因为价值仍然是。

您认为valueMatch 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

有关解析Command-line arguments in Python

的更多信息