import datetime #To use date time functionality
file_log = open('.\Log_Detailed.log', 'w')
file_log.write("1 \n");file_log.write("2 \n");file_log.write("3 \n");file_log.write("4 \n");file_log.write("5 \n");file_log.write("6 \n");file_log.write("7 \n");file_log.write("8 \n");file_log.write("9 \n");file_log.write("10 \n");
file_log.write("\n----------------------------------------------------------------------------\n")
file_log.write(" LTE RRC PARSER \n")
file_log.write("----------------------------------------------------------------------------\n")
file_log.write("\n\n")
file_log.write("Cases Execution Started At : " + datetime.datetime.now().ctime())
file_log.write("\n\n")
file_log.seek(0); #This line is the problem
file_log.write("\n***********************SUMMARY*************************\n")
file_log.write("No. of cases Passed =\n");
file_log.write("No. of cases Failed =\n");
file_log.write("*********************************************************\n");
file_log.close();
当我运行上面的代码注释掉“file_log.seek(0,0)”时,它会输出以下输出:
1
2
3
4
5
6
7
8
9
10
----------------------------------------------------------------------------
LTE RRC PARSER
----------------------------------------------------------------------------
案件执行开始时间:2014年8月7日星期四12:26:32
但是当我运行上面的代码时,输出显示如下: -
***********************SUMMARY*************************
没有。通过的案件=
没有。案例失败=
*********************************************************
----------------------------------------------------------------------------
案件执行开始时间:2014年8月7日星期四12:35:28
正如您在第二个输出中看到的那样,许多行被模糊地覆盖了!使用seek(0,0)后,它会覆盖比需要更多的行。我想要的是在LTE RRC之前写入的摘要部分。 Plz帮助!
答案 0 :(得分:0)
正如您在第二个输出中看到的那样,许多行被模糊地覆盖了!
不,这不是含糊不清的。
它会根据需要覆盖完全相同的字节数(!)。
file_log.write("\n***********************SUMMARY*************************\n")
file_log.write("No. of cases Passed =\n");
file_log.write("No. of cases Failed =\n");
file_log.write("*********************************************************\n");
准确地将159个字节写入文件(除非您使用Windows和文本文件,在这些情况下\n
替换为\r\n
,最终会有164个字节)。
因此文件的前159个(或164个)字节被覆盖。由于文件中的行很短,因此会丢失更多的行,就像它们更长一样。
答案 1 :(得分:0)
文件不是行。它们是字符或字节
当你回到开头时,你会覆盖那么多角色。 如果你需要这样做,你必须提前计算字节数,这样你就可以留出足够的空间。
也许你可以像这样编写文件,留下空格(在=之后)以便稍后覆盖。
file_log.write("\n***********************SUMMARY*************************\n")
file_log.write("No. of cases Passed = \n");
file_log.write("No. of cases Failed = \n");
file_log.write("*********************************************************\n");
file_log.write("\n----------------------------------------------------------------------------\n")
file_log.write(" LTE RRC PARSER \n")
file_log.write("----------------------------------------------------------------------------\n")
file_log.write("\n\n")
file_log.write("Cases Execution Started At : " + datetime.datetime.now().ctime())
file_log.write("\n\n")