❶ python學習sys.argv塊中,輸出一直顯示提示沒有參數,該怎麼顯示正確結果
看你的意思應該是執行腳本的時候傳入相關的參數,這個在python裡面可以用getopt來實現。
因為你在腳本裡面沒有定義傳入參數,len(sys.argv) 值應該為1,既只有『腳本名』這個參數。所以運行的時候一直走if len(sys.argv) < 2: 這個分支。
❷ python2和python3的argv怎麼使用
ys.argv變數是一個字元串的列表。特別地,sys.argv包含了命令行參數 的列表,即使用命令行傳遞給你的程序的參數。
這里,當我們執行python using_sys.py we are arguments的時候,我們使用python命令運行using_sys.py模塊,後面跟著的內容被作為參數傳遞給程序。Python為我們把它存儲在sys.argv變數中。記住,腳本的名稱總是sys.argv列表的第一個參數。所以,在這里,'using_sys.py'是sys.argv[0]、'we'是sys.argv[1]、'are'是sys.argv[2]以及'arguments'是sys.argv[3]。注意,Python從0開始計數,而非從1開始。
ys.argv[]是用來獲取命令行參數的,sys.argv[0]表示代碼本身文件路徑;比如在CMD命令行輸入 「python test.py -help」,那麼sys.argv[0]就代表「test.py」。sys.startswith() 是用來判斷一個對象是以什麼開頭的,比如在python命令行輸入「'abc'.startswith('ab')」就會返回True
以下實例參考:
#!/usr/local/bin/env pytho
import sysdef readfile(filename): '''Print a file to the standard output.''' f = file(filename) while True: line = f.readline() if len(line) == 0: break print line, f.close()
rint "sys.argv[0]---------",sys.argv[0] print "sys.argv[1]---------",sys.argv[1] print "sys.argv[2]---------",sys.argv[2]# Script starts from hereif len(sys.argv) < 2: print 'No action specified.' sys.exit()
if sys.argv[1].startswith('--'): option = sys.argv[1][2:] # fetch sys.argv[1] but without the first two characters if option == 'version': print 'Version 1.2' elif option == 'help': print '''" This program prints files to the standard output. Any number of files can be specified. Options include: --version : Prints the version number --help : Display this help''' else: print 'Unknown option.' sys.exit()else: for filename in sys.argv[1:]: readfile(filename)
執行結果:# python test.py --version helpsys.argv[0]--------- test.pysys.argv[1]--------- --versionsys.argv[2]--------- helpVersion 1.2
注意:sys.argv[1][2:]表示從第二個參數,從第三個字元開始截取到最後結尾,本例結果為:versio
❸ 怎麼在Python互動式命令行中運行腳本
話不多說
直接上代碼:
#encoding:utf-8
__author__='zhanghe'
importsys
deftest():
"""
命令行測試python調用自定義方法
"""
printsys.argv
try:
iflen(sys.argv)>1:
fun_name=eval(sys.argv[1])
fun_name()
else:
print'缺失參數'
exceptNameError,e:
printe
print'未定義的方法[%s]'%sys.argv[1]
deffuck():
print'Thisisatest!'
if__name__=='__main__':
test()
"""
sys.argv[0]文件名
sys.argv[1]命令行輸入的參數1
sys.argv[2]命令行輸入的參數2
測試用例:
$python/home/zhanghe/code/python/test/test_sys_arg.py
$python/home/zhanghe/code/python/test/test_sys_arg.pyfuc
$python/home/zhanghe/code/python/test/test_sys_arg.pyfuck
"""
https://github.com/zhanghe06/python/blob/master/test/test_sys_arg.py
❹ python 開始就判斷len(sys.argv)==4想問下意義!
sys.argv[0]是代表當前所執行的腳本
sys.argv[1] 腳本第一個參數
所以len(sys.argv)==4 代表當前腳本含有3個參數。
若執行命令為python hello.py "111"
則len(sys.argv)==2,hello.py也是其中的一個參數
❺ python sys.argv[1]沒有值
#!/usr/bin/python
import sys
i=1
if __name__ == '__main__':
if len(sys.argv) < 2 :
print "please usage %s string "檔物絕%(sys.argv[0])
sys.exit()
print 'ligen----'行姿螞慎
while (i < len(sys.argv) ) :
print sys.argv[i]
i=i+1
print 'ligen----'