我是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格式的“某个日期”。怎么可能呢?我用谷歌搜索了可变掩码,可变模式,但没有任何结果。

感谢您的帮助和耐心等待。



更新:

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

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

最佳答案

如果我理解您说的正确,那么您想以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")


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

关于python - Python:定义字符串变量模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39020470/

10-12 17:42
查看更多