我是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()
答案 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")
我认为这是自我解释的......;)