寻求引发的python文件读写的问题及解决

  

我的需求很简单,就是统计一下我的安装脚本执行的次数和时间,格式是这样的

        install_times: 1 | install_times: 2018-09-03 15:58:46   install_times: 2 | install_times: 2018-09-03 15:58:50   install_times: 3 | install_times: 2018-09-03 15:58:54      

首先我需要判断一下文件是否为空,我开始是这样写的

        导入的时间   进口操作系统   file_list=[]   标签=False   张开(“install_hadoop。txt”、“r”,编码=皍tf - 8”) f:   国旗=bool (f.readline ())   # obj=True   # f.seek (0)   如果国旗:   标签=True   obj的f:   tmp_list=obj.split (“|”)   file_list.append (tmp_list)   last_times=int (file_list [1] [0] .split (“:”) [1]) + 1   last_time= strftime (“% - % - % d % H: % m: % S”)   其他:   last_times=1   last_time= strftime (“% - % - % d % H: % m: % S”)      

先通过f.readline()读一行文件出来,判断返回的对象是否为真,如果为真,则认为文件不为空,则继续往下走,这里有个问题就是,当我读出来一行后,我的指针的位置到了第一行的末尾,等下在去读文件,直接从第二行去读数据,本来我这里是要读到所有的数据,但是由于寻求导致我的数据是从第二行开始的,所以得出来的结果就不对

  

<强>这里可以有2种办法解决

  

1,通过f.readline()读一次文件之后,在f.seek(0),把指针在设置回到最开始的位置

        张开(“install_hadoop。txt”、“r”,编码=皍tf - 8”) f:   国旗=bool (f.readline ())   # obj=True   & lt; strong>f.seek (0) & lt;/strong>   如果国旗:   标签=True   obj的f:   tmp_list=obj.split (“|”)   file_list.append (tmp_list)   last_times=int (file_list [1] [0] .split (“:”) [1]) + 1   last_time= strftime (“% - % - % d % H: % m: % S”)   其他:   last_times=1   last_time= strftime (“% - % - % d % H: % m: % S”)      

2,修改判断文件是否为空的方法,采用os.path.getsize的方法来判断文件是否为空

        张开(“install_hadoop。txt”、“r”,编码=皍tf - 8”)作为f: & lt; br>国旗=bool (f.readline ()) & lt; br># obj=True
f.seek (0) & lt; br>& lt; strong> print (os.path.getsize (“install_hadoop.txt”)) & lt;/strong> & lt; br>如果国旗:& lt; br>标签=True
obj的f: & lt; br>tmp_list=obj.split (“|”) & lt; br>file_list.append (tmp_list) & lt; br>last_times=int (file_list [1] [0] .split (“:”) [1]) + 1 & lt; br>last_time= strftime (“% - % - % d % H: % m: % S”) & lt; br>其他:& lt; br>last_times=1 & lt; br>last_time= strftime (“% - % - % d % H: % m: % S”)      

至此,这个问题被解决,同时也对python的文件操作有了更深的理解,也明白了python设置寻求的作用

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

寻求引发的python文件读写的问题及解决