sys.argv及其應(yīng)用

tst.py

import sys
print sys.argv  # ['D:/python projects/Prototype/tst.py']

在pycharm中運(yùn)行 sys.argv的打印結(jié)果是一個(gè)列表
如果此時(shí)再運(yùn)行打印

print sys.argv[1]

一定會(huì)報(bào)錯(cuò):

Traceback (most recent call last):
  File "D:/python projects/Prototype/tst.py", line 52, in <module>
    print sys.argv[1]
IndexError: list index out of range

還是這段代碼:

import sys
print sys.argv 
print sys.argv[1]

如果在terminal中或cmd中運(yùn)行,則打印結(jié)果為:

['tst.py', "'argv'"]
'argv'

sys.argv[ ]其實(shí)就是一個(gè)列表,里邊的項(xiàng)為用戶輸入的參數(shù),關(guān)鍵就是要明白這參數(shù)是從程序外部輸入的,而非代碼本身的什么地方,要想看到它的效果就應(yīng)該將程序保存了,從外部來(lái)運(yùn)行程序并給出參數(shù)。

應(yīng)用:
比如要按照時(shí)間跑腳本:如果運(yùn)行文件則跑全量腳本,傳入?yún)?shù)則指定日期

import sys
import datetime
def get_b_or_a_day(days):
    today = datetime.date.today()
    the_day = datetime.timedelta(days=days)
    print the_day
    day_ok = today + the_day
    return day_ok
if len(sys.argv) == 1:# 沒(méi)傳參數(shù),則默認(rèn)昨天全量
     yesterday = str(get_b_or_a_day(-1))
elif len(sys.argv) == 2:
     yesterday = sys.argv[1]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容