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從您的選項名稱中定義動態成員。 –