Python打印到文件功能未打印到文件

时间:2019-07-17 07:54:34

标签: python

我正在使用带有输出到文件参数的打印功能。打印功能在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是不相等的数据帧

执行代码不会引发任何错误,但是当我检查日志文件时,它不包含打印的语句。

如何更正代码?

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()