Python:定义一个字符串变量模式

时间:2016-08-18 14:11:54

标签: 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格式。怎么可能呢?我用googled变量模板,变量模式,没有任何结果。

感谢您的帮助和耐心。

更新:

幸运的是,所有答案都帮助了我!

由于CTRL变量让我 2016-08-17 00:00:00 格式,我不得不将其转换为 20160817 。以下代码对我有用:

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()

2 个答案:

答案 0 :(得分:2)

你需要功能 datetime.strptime ,面具%Y%m%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()

输出:

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

答案 1 :(得分:0)

如果我理解你所说的正确,你想以YYYYMMDD格式传递一个参数。

没有什么可以阻止你用脚本做这件事。

您可以运行:python yourscript.py YYYYMMDD,字符串“YYYYMMDD”将存储在您的CTRL变量中。

更新:

以下例程执行您要求的检查:

如果您需要我解释一下,请告诉我!

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)

更新:

如果您想以YYYY-MM-DD格式解析日期,则需要这样做:

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

我认为这是自我解释的......;)