我正在使用带有输出到文件参数的打印功能。打印功能在if语句下。下面是代码
log_file = open("Src_files.log", 'w')
if count_1.equals(count_2) == False:
print('Error: Discrepancy with processed file. Count of records does not match with sources file', file=log_file)
Count_1和count_2是不相等的数据帧
执行代码不会引发任何错误,但是当我检查日志文件时,它不包含打印的语句。
如何更正代码?
答案 0 :(得分:1)
dict = {
'Location':
['ANNEX', 'CHENNAI', 'DADRI', 'JNPT', 'KOLKATA', 'MUNDRA'],
'ToTal_Dwell':
[60.0, 86.0, 108.0, 39.0, 67.0, 82.0]
}
默认不刷新。检查python manual来查找是否存在print
关键字arg,或者只是关闭文件。 flush
答案 1 :(得分:0)
with open('Src_files.log', 'a') as log_file:
if count_1.equals(count_2) == False:
log_file.write('Error: Discrepancy with processed file. Count of records does not match with sources file')+"\n")
注意::使用“ With”语句,您可以获得更好的语法和异常处理。 with语句通过封装common简化了异常处理 准备和清理任务。
此外,它将自动关闭文件。 with语句提供 一种确保始终使用清理的方法。
编辑:正如@blues在他的回答“默认情况下不刷新打印”中所述,因此,您需要手动关闭文件以将缓冲区写入文件,并以追加模式打开文件(如果您还想存储以前的日志,则为a
。
log_file = open("Src_files.log", 'w')
if count_1.equals(count_2) == False:
print('Error: Discrepancy with processed file. Count of records does not match with sources file', file=log_file)
log_file.close()