我是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/