0
我想打电话给在命令行Python模块的时间在我的时区转换为UTC时间是这样的:Python parse_args读取的参数在哪里?
$ dt-la-utc.py "2017-10-14 12:10:00"
当我执行如下所示的模块中,convert_la_utc功能正常工作,如果我硬编码日期和时间。但是,我想以日期和时间作为输入的命令行。但是parse_args函数不起作用。如果我运行Python调试器并检查“args”变量,则没有任何内容。我究竟做错了什么?
#!/usr/bin/env python
import argparse
import datetime
from pdb import set_trace as debug
import pytz
import sys
def parse_args():
"""Parse arguments."""
parser = argparse.ArgumentParser(description="Convert LA time to UTC time.")
parser.add_argument("dt", help="LA date and time in format: YYYY-MM-DD HH:MM:SS")
args = parser.parse_args()
debug()
return args
def convert_la_utc():
"""Convert time in Los Angeles to UTC time."""
date = '2017-10-12'
time = '20:45:00'
date_time = date + ' ' + time
datetime_format = '%Y-%m-%d %H:%M:%S'
local = pytz.timezone("America/Los_Angeles")
naive = datetime.datetime.strptime(date_time, datetime_format)
local_dt = local.localize(naive, is_dst=None)
utc_dt = local_dt.astimezone(pytz.utc)
print "Datetime in Los Angeles: {0}".format(date_time)
print "UTC equivalent datetime: {0}".format(utc_dt.strftime("%Y-%m-%d %H:%M:%S"))
def main():
args = parse_args()
convert_la_utc()
if __name__ == '__main__':
sys.exit(main())
不是这样。如果它在函数内部不可见,则它不会在其外部可见。 – William
那么..它适用于我。等待编辑。 – atru
尝试打印args.dt后解析它。有用。 argparser从您的选项名称中定义动态成员。 –