2012-08-03 43 views
0

如何在兩個使用不同Python版本解釋器的兩個Python腳本之間傳遞變量?例如,從python腳本2.4傳遞變量到2.7

Python的腳本-2.4包含變量X 返回X到Python的腳本 - 2.7操作

我已經試過這樣做,但返回的值是 '0'。

+0

你說的操作是什麼意思?某種全局共享變量? – SuperSaiyan 2012-08-03 04:04:53

+0

你如何運行你的兩個python腳本?其中一個人是否啓動了其他人(例如使用'subprocess'模塊),還是你在做更復雜的事情? – Blckknght 2012-08-03 04:05:02

+0

我只能想到在python 2.4中序列化var x(使用pickle)並在python 2.7腳本中訪問。 – 2012-08-03 04:28:03

回答

1

據我所知,你可以使用os.system()從Python2.7腳本中調用一個已經存在的Python2.4腳本。

首先,你應該在Python2.7文檔中考慮Replacing os.system()。 但是這種方法的侷限性在於你只能得到你的調用的返回碼(所以你必須查看你的2.4腳本以確保在出現任何錯誤時正確使用返回碼......)。

其次,如果你需要知道什麼是書面輸出和錯誤的,使用subprocess.Popen

#!/bin/env python 

from subprocess import Popen, PIPE 

command = 'read INPUT ; echo $INPUT on stdout && echo 1>&2 "Here is stderr"' 
process = Popen(command, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE) 
out, err = process.communicate("Hello world") 
print(out) 
print("-------") 
print(err) 
+0

乾杯亞歷克西斯,工作! – 2012-08-13 05:53:35

+0

如果它符合您的需求,請驗證我的答案;) – 2012-08-20 08:40:08