2016-08-18 76 views
1

我是python新手。Python:定義一個字符串變量模式

我有一個程序,從str(sys.argv[1])寫着:

myprogram.py "some date" # I'd like this in YYYYMMDD format. I.e: 
myprogram.py 20160806 


if __name__ == '__main__': 
    if str(sys.argv[1]): 
     CTRL = str(sys.argv[1]) 
     print "some stuff" 
     sys.exit() 

我需要YYYYMMDD格式 「一些日期」。這怎麼可能?我已經使用了變量掩碼,變量模式並沒有出現。

感謝您的幫助和耐心。


UPDATE:

好在所有的答案幫我!

隨着CTRL變量gaves我2016年8月17日00:00:00格式,我不得不將其轉換爲。這裏是我工作的代碼:

if str(sys.argv[1]): 
    CTRL_args = str(sys.argv[1]) 

    try: 
     CTRL = str(datetime.datetime.strptime(CTRL_args, "%Y%m%d")).strip().split(" ")[0].replace("-","").replace(" ","").replace(":","") 
     # do some stuff 
    except ValueError: 
     print('Wrong format!') 
     sys.exit() 
+1

_'I極品 「一些日期」。什麼是「某日期」?它不會出現在你的代碼中的任何地方。 – Kevin

+0

@Kevin我編輯過。這很清楚嗎? –

+0

我的一個問題再次被低估了嗎?怎麼了? –

回答

0

如果我明白你說的正確,你想傳遞一個YYYYMMDD格式的參數。

沒有什麼能阻止你用腳本來做這件事。

您可以運行:python yourscript.py YYYYMMDD,並將一個字符串「YYYYMMDD」存儲在您的CTRL變量中。


UPDATE:

以下常規做你所要求的檢查:

讓我知道,如果你需要我多解釋了吧!

import sys 
from datetime import datetime 

if __name__ == '__main__': 
    try: 
     CTRL = str(sys.argv[1]) 
    except IndexError: 
     print "You have not specified a date!" 
     sys.exit() 

    try: 
     parced_CTRL = datetime.strptime(CTRL, "%Y%m%d") 
    except ValueError: 
     print "Please input date in the YYYYMMDD format!" 
     sys.exit() 

    print "Date is in the correct format!" 
    print "Data = {}".format(parced_CTRL) 

UPDATE:

如果要分析的YYYY-MM-DD格式的日期,你需要做的,而不是:

parced_CTRL = datetime.strptime(CTRL, "%Y-%m-%d") 

我認爲這是自我解釋...;)

+0

這就是它的確如此,但是參數應該是YYYYMMDD格式,沒有什麼不同, –

+0

所以你想檢查格式是否正確?如果不是,你想要和「錯誤信息」輸出? – TPVasconcelos

+0

如果格式是YYYYMMDD格式做其他的東西,否則打印錯誤信息。我沒有寫在我的問題,保持簡單。 –

2

您需要功能datetime.strptime帶面罩%Y%米%d

import sys 
from datetime import datetime 

if __name__ == '__main__': 
    if str(sys.argv[1]): 
     CTRL = str(sys.argv[1]) 
     try: 
      print datetime.strptime(CTRL, "%Y%m%d") 
     except ValueError: 
      print 'Wrong format' 
     sys.exit() 

輸出:在YYYYMMDD format'_

$ python example.py 20160817 
2016-08-17 00:00:00 
+0

我怎麼能把這個'if'語句,以確保它沒有輸入不同的格式? –

+0

我將驗證添加到原始答案 – g1zmo