使用seek(0,0)时,它会在python中任意删除文件顶部的行

使用seek(0,0)时,它会在python中任意删除文件顶部的行,python,file,seek,Python,File,Seek,当我运行上面的代码注释掉文件_log.seek0,0时,它会打印以下输出: 一, 二, 三, 四, 五, 六, 七, 八, 九, 十, 案件执行时间:2014年8月7日星期四12:26:32 但当我运行上述代码时,输出如下所示:- ---------------------------------------------------------------------------- LTE RRC PARSER

当我运行上面的代码注释掉文件_log.seek0,0时,它会打印以下输出:

一,

二,

三,

四,

五,

六,

七,

八,

九,

十,

案件执行时间:2014年8月7日星期四12:26:32

但当我运行上述代码时,输出如下所示:-

----------------------------------------------------------------------------
                         LTE RRC PARSER                                 
----------------------------------------------------------------------------
通过的个案数目=

失败个案数目=

***********************SUMMARY*************************
案件执行时间:2014年8月7日星期四12:35:28

正如您在第二次输出中看到的,许多行被模糊地覆盖了!使用seek0,0后,它会覆盖比需要更多的行。我想要的是在LTE RRC之前写的摘要部分。请帮忙

正如您在第二次输出中看到的,许多行被模糊地覆盖了

不,这并不含糊

它覆盖的字节数完全相同!根据需要

*********************************************************

----------------------------------------------------------------------------
除非您使用Windows和文本文件,否则会将159个字节写入文件,在这些情况下,\n将被替换为\r\n,最终将有164个字节

因此,文件的前159或164字节被覆盖。由于文件中的行很短,因此会丢失更多行,就好像它们更长一样。

文件不是行。它们是字符或字节

当您返回到开始时,您正在覆盖那么多字符。 如果需要这样做,您必须提前计算字节数,以便留出足够的空间

也许您可以这样编写文件,在=之后留下空白,以便稍后覆盖

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");

你以为会发生什么?您将搜索回文件的顶部,并在那里重写行。Seek不允许在文件中插入行,只允许覆盖行。为什么不在文件的顶部留下一个空白,即摘要消息的大小?为什么不按您想要的顺序写行呢?为什么要寻求帮助呢?Thanx非常感谢你的帮助,John。Thanx非常感谢你的洞察力:@user2168281如果你认为这个答案比另一个好,你可以通过接受这个答案来感谢我,或者当你至少有15个声誉时,通过投票来感谢我。
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***********************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")