Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:定义字符串变量模式_Python - Fatal编程技术网

Python:定义字符串变量模式

Python:定义字符串变量模式,python,Python,我是python新手 我有一个程序可以读取str(sys.argv[1]): 我需要YYYYMMDD格式的“某个日期”。怎么可能呢?我在谷歌上搜索了变量掩码、变量模式,但什么也没找到 谢谢你的帮助和耐心 更新: 幸运的是,所有的答案都帮助了我 由于CTRL变量使我无法使用2016-08-17 00:00:00格式,我必须将其转换为20160817。以下是对我有用的代码: if str(sys.argv[1]): CTRL_args = str(sys.argv[1]) try

我是python新手

我有一个程序可以读取str(sys.argv[1]):

我需要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格式传递一个参数

没有任何东西可以阻止您使用脚本执行此操作

您可以运行:
pythonyourscript.pyyyyymmdd
,并且字符串“yyyyymmdd”将存储在您的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")

我认为这是不言自明的……;)

您需要带有掩码的函数datetime.strtime%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

'我需要YYYYMMDD格式的“某个日期'”。什么是“约会”?它不会出现在代码中的任何地方。@Kevin我已经编辑过了。清楚吗?我的问题又被否决了?怎么了?更清楚一点,但“20160806”已经是YYYYMMDD格式了。你想生产什么样的产品?您的程序是否应该说“输入是YYYYMMDD格式的,太棒了”?如果用户输入“myprogram.py spamandegs”,它是否应该说“这不是YYYYMMDD日期,请重试”?还是怎样我仍然不知道您实际想做什么。它应该说“这不是YYYYMMDD日期。确实如此。但是参数应该是YYYYMMDD格式,没有什么不同,所以您要检查格式是否正确?如果不正确,您需要和”错误消息“输出?如果格式为YYYYMMDD格式,则执行其他操作,否则打印错误消息。我在我的问题中没有写这句话来保持简单。这就是你想要的吗?它奏效了!但是我必须使用
CTRL=str(datetime.datetime.strtime(parced_CTRL,“%Y%m%d”)).strip()将字符串2016-08-17 00:00:00:00转换为20160817。替换(“-”,”).replace(“:”,”)
我怎样才能把它放在
if
语句中,以确保它不是以不同的格式输入的?我在原始答案中添加了验证
$ python example.py 20160817
2016-08-17 00:00:00