2016-12-31 89 views
-2

當我運行此以下行爲:蟒蛇MyApp.py ARG1 ARG2 我得到預期的結果:獲取參數

['MyApp.py', 'arg1', 'arg2'] 

但是 - 當我運行它爲:MyApp.py ARG1 ARG2 我做沒有得到的參數:

['MyApp.py'] 

如何貓沒有明確使用python獲取參數?

#!/usr/bin/python 
import sys 
if __name__ == "__main__": 
    print (sys.argv) 
+2

「沒有明確使用python」咦?您正在編寫一個Python腳本。那是什麼意思? – DeepSpace

+0

你能分享更多的源文件嗎?我無法重現您正在使用您提供的代碼討論的問題。 – Irisshpunk

+0

這是我所有的代碼。我想獲得參數而不明確使用python? – DuduArbel

回答

-1

如果您使用的是Linux發行,打開終端,輸入

which python 

你會得到您的默認的Python可執行文件存儲的路徑。輸入此路徑作爲代碼的第一行,使用shebang,即#!。例如,我的路徑是:/usr/bin/python,那麼我就可以做到以下幾點:

#! /usr/bin/python 

import sys 
print sys.argv 

現在,在你的終端,轉到該文件的存儲目錄。假設文件的名稱是check.py。使其可執行使用下面的命令:

chmod +x check.py 

現在你可以通過鍵入運行您的程序:./check.py arg1 arg2,它會執行,因爲它應該。

對於Windows,您需要確保Windows正在關聯正確的Python可執行文件以執行.py文件。即使它正確關聯,有時Windows也會從命令中刪除參數。

我不是一個非常沉重的Windows用戶。你可以查看這個博客:http://eli.thegreenplace.net/2010/12/14/problem-passing-arguments-to-python-scripts-on-windows/

+0

我使用Windows操作系統 – DuduArbel

+1

@DuduArbel這是在回答Python問題時提出一個非常重要的事情。 –

+0

我查了一下,Windows不看shebang。 –