Python:定义字符串变量模式
我是python新手 我有一个程序可以读取str(sys.argv[1]): 我需要YYYYMMDD格式的“某个日期”。怎么可能呢?我在谷歌上搜索了变量掩码、变量模式,但什么也没找到 谢谢你的帮助和耐心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
更新: 幸运的是,所有的答案都帮助了我 由于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