2013-03-25 124 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() 

但你的腳本不需要標準輸出, 這意味着它必須打印結果

相關問題