2013-03-25 180 views
0

我有一个已经写好的python脚本,它返回一个整数值。我想使用该整数值作为我正在处理的另一个python脚本的参数之一。有没有办法做到这一点?我在mac的终端工作。使用python脚本作为另一个python脚本的命令行参数

+1

“返回一个整数值”。 *它如何返回该值?请分享您的代码。 – 2013-03-25 18:56:22

+4

为什么不把脚本导入第二个脚本?调用从第二个脚本中返回一个整数的函数。 – ecline6 2013-03-25 18:57:45

+0

@ ecline6我刚看了一下如何导入,看起来很简单。我可以在新脚本中调用我要返回的变量的名称吗?如果不是,你如何与导入的脚本的变量进行交互? – sgchako 2013-03-25 19:01:29

回答

0

只需将您的脚本作为模块导入第二个脚本。然后你可以用模块前缀调用任何函数。 从脚本2中:

import script1 

#this is your function call that returns an integer 
script1.script1function() 

您可以使用:

from script1 import * 

能够访问所有的变量也是如此。但是这通常不是一个好主意,特别是如果你打算改变这些变量的值。

def some_function(): 
    return(1) 

some_variable = 2 

在你的第二个脚本:

+0

我认为这也适用于变量? – sgchako 2013-03-25 19:10:22

+0

你需要做“从script1导入*”。这将使您可以访问所有变量以及函数。一般来说,这不是一个好主意,但... – ecline6 2013-03-25 19:10:42

+0

我真的会输入*或是它是我想要导入的变量名称,函数名称的占位符。另外,你是否仍然以相同的方式与script1的东西进行交互?例如 – sgchako 2013-03-25 19:21:50

0

这个问题可以通过导入的第一个脚本作为第二(documentation) 模块比方说,你的第一个脚本称为script.py,看起来像这样来解决,你可以导入的第一个作为一个模块,并使用它的函数和变量,当模块名称前缀:

import script 

print script.some_function(), script.some_variable 

这将打印1, 2

+0

完美答案,谢谢! – sgchako 2013-03-25 19:22:25

+0

很高兴帮助!正如@ ecline6所说,如果你能够将答案标记为已接受(如果它解决了你的问题),那么这样会很好,所以人们知道问题已经解决。 – ASGM 2013-03-25 20:10:52

0
from subprocess import (
    Popen, 
    PIPE 
) 
p1 = Popen(['/path/to/python', "/path/to/your/script.py"], stdout=PIPE) 
p1.stdout.read() 

但你的脚本不需要标准输出, 这意味着它必须打印结果

相关问题