2016-06-07 88 views
1

我有一個簡單的請求。我有一個帶有變量列表的python文件。我想執行python文件並獲取寫入日誌文件的輸出。什麼是簡單的方法來做到這一點? 例如: var.py具有下面的代碼將python輸出重定向到日誌文件

x = (10,11,12) 
y = str("case when id =1 then gr8 else ok end") 
z = datetime.datatime.today().strftime('%Y-%m-%d') 

我希望日誌顯示在同一順序

x = (10,11,12) 
y = 'case when id =1 then gr8 else ok end' 
z = 2016-06-07 

我怎樣才能在Python實現這個變量分辨率是多少?

這是我試過

# In: 
import logging 

# set root logger level 
root_logger = logging.getLogger() 
root_logger.setLevel(logging.DEBUG) 

# setup custom logger 
logger = logging.getLogger(__name__) 
handler = logging.FileHandler('example.log') 
handler.setLevel(logging.INFO) 
logger.addHandler(handler) 

# log 
x = (10,11,12) 
y = str("case when id =1 then gr8 else ok end") 
logger.debug(x) 
logger.debug(y) 

example.log文件是空

+0

沒有一個明確的方式來做到這一點,但你可以使用Python內置的日誌模塊 – Brian

回答

1

Input/Output Operations與Python是很容易。

您可以打開,寫和手動關閉文件,即:

text_file = open("OutputFile.txt", "w") 
text_file.write("Write blablabla into a file") 
text_file.close() 

或者你使用上下文管理器(該文件爲你自動關閉),即:

這通常是一個更好的編碼實踐..

with open("Output.txt", "w") as text_file: 
    text_file.write("Write blablabla into a file") 

在您的例子:

import datetime 

x = (10,11,12) 
y = str("case when id =1 then gr8 else ok end") 
z = datetime.datetime.today().strftime('%Y-%m-%d') 

outfile = 'outputfile.txt' 

with open(outfile, 'w') as f: 
    f.write(str(x)) 
    f.write("\n") 
    f.write(y) 
    f.write("\n") 
    f.write(z) 
    f.write("\n") 

生成一種叫outputfile.txt在腳本文件夾文件,具有以下行:

(10, 11, 12) 
case when id =1 then gr8 else ok end 
2016-06-07 

但是,如果你想有一個記錄特定庫,你可以看看LOGGING

import datetime, logging 

logfile = 'logfile.log' 

logging.basicConfig(filename=logfile, 
        level=logging.INFO, 
        format='%(asctime)s.%(msecs)03d %(levelname)s %(message)s', 
        datefmt='%Y-%m-%d %H:%M:%S') 

x = (10,11,12) 
y = str("case when id =1 then gr8 else ok end") 
z = datetime.datetime.today().strftime('%Y-%m-%d') 

logging.info(x) 
logging.info(y) 
logging.info(z) 

這將產生以下輸出:

2016-06-07 15:28:12.874 INFO (10, 11, 12) 
2016-06-07 15:28:12.874 INFO case when id =1 then gr8 else ok end 
2016-06-07 15:28:12.874 INFO 2016-06-07 
+0

在IPython中試用這段代碼。我沒有看到我的python文件夾中的log file.log文件?是否有任何特殊的添加,如我需要添加以創建日誌文件的處理程序?謝謝 – pmv

0

使用Python記錄器功能

import logging 
logging.basicConfig(filename='example.log',level=logging.DEBUG) 
x = (10,11,12) 
y = str("case when id =1 then gr8 else ok end") 
logging.debug(x) 
logging.debug(y) 
+0

我希望輸出也包含變量名稱。示例z = 2016-06-07 – pmv

+0

操作對象。在字符串對象之前假裝字符串。 – prateek05

+0

你可以給一個例子PLZ。謝謝 – pmv

相關問題