2013-07-15 41 views
1
的raw_input傳遞到Python

你好,我有一個Python腳本如下,它使用2個輸入無法從PHP

import urllib 
import urllib2 
code, num = raw_input().split(' ') 
parse(num,code) 
print success 
exit() 

現在我試圖通過的raw_input使用PHP文件,但它是一個將解析腳本不工作

PHP腳本是

<?php 
$num="36"; 
$code="a"; 
$result = exec('python test.py "$code $num"'); 
echo $result; 
?> 

請幫我

回答

2

你是不是通過任何東西raw_input()raw_input()stdin管道讀取,而不是從命令行讀取。

如果你想通過命令行來閱讀,而應使用sys.argv

import sys 

code, num = sys.argv[1].split() 

你需要使用字符串連接來構建PHP電話:

$result = exec('python test.py "' . $code . ' ' . $num . '"'); 

可避免通過傳遞兩個值作爲兩個單獨的命令行參數(這裏引用,儘管對於您的特定簡單情況,這是可選的):Python中拆分:

$result = exec('python test.py "' . $code . '" "' . $num . '"'); 

,並在Python中使用:

import sys 

code, num = sys.argv[1:] 
+0

非常棒。 。像魅力一樣工作。謝謝你。 。 。你可以看到我的另一個疑問,編輯後的問題,分配變量後,它不工作:(@Martijn – user2501866

+0

@ user2501866:你需要使用字符串連接; PHP不會奇蹟般地用字符串替換字符串中的$ code' –

2

這條線:

$result = exec('python test.py "$code $num"'); 

將始終將原始字符串 「$代碼」 和 「$ NUM」。要傳遞變量的實際值,請執行以下操作:

$result = exec('python test.py "'.$code.' '.$num.'"'); 
+0

Thankyou先生:) – user2501866