我想在python中使用argparse和日誌記錄模塊。我有一個運行的程序,它有很多可能的選項,我已經成功實現了argparse模塊來處理這個任務。在python中記錄argparse的值
我想記錄每個選項在程序運行時的值並將其發送到日誌文件。我嘗試了以下幾件事情,並將其中包含的相關錯誤作爲註釋加入其中。
parser = argparse.ArgumentParser()
parser.add_argument('input', action="store", default='fort.13', type=str)
args = parser.parse_args()
# First try:
logging.info("Input args: " + args)
# TypeError: cannot concatenate 'str' and 'Namespace' objects
# Second try:
for x in args:
logging.info(x)
# TypeError: 'Namespace' object is not iterable
這樣做的正確方法是什麼?
我認爲你需要調整它爲'logging.info(「Argument%s:%r」%(n,v))''。一個奇怪的行爲,但是,當我將它添加到我的代碼,它不再輸出.log文件。當我將它註釋掉並重新運行時,日誌文件仍然存在。任何原因,這應該是奇怪的日誌文件是否寫入? – JBWhitmore 2012-07-20 02:02:50
我已經調整了代碼幾次... – 2012-07-20 02:04:54
@JBWhitmore:使用日誌記錄模塊,你不會自己做字符串格式化,你可以讓日誌記錄執行它。我不知道你的日誌文件出了什麼問題...... – 2012-07-20 02:05:37