首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python将函数的参数调用到另一个脚本

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

Stack Overflow用户
提问于 2018-02-11 12:48:16
回答 2查看 108关注 0票数 0

我是python的新手,正在尝试将一个函数的参数调用到另一个脚本中。但我一直收到错误。下面是代码:下面的函数的输入是一个文本文件。

script1.py

代码语言:javascript
复制
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

代码语言:javascript
复制
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 = ""

我希望输出为:

代码语言:javascript
复制
a = output of regex
b = output of regex

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2018-02-11 13:22:30

在中访问变量arg之前,您没有定义该变量:

代码语言:javascript
复制
for i in arg: <---
    ...

这样做:

代码语言:javascript
复制
arg = [... , ... , ...]
for i in arg: <---
    ...

另外,value没有'.group()',因为value仍然是一个。

你假设value是一个Match Object,因为这就是re.search() returns,但你从来没有做过value = re.search(...)

票数 1
EN

Stack Overflow用户

发布于 2018-02-12 01:10:29

如果您要解析命令行参数,则必须在script2.py中导入sys包import sys。在for i in arg:中,你必须编写for i in sys.argv:而不是arg,结果应该是这样的:

代码语言:javascript
复制
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:]

有关解析Command-line arguments in Python的更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48728371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档