2016-06-07 120 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

相关问题