文件指针的使用

最近在处理数据的数据的时候,打开文件让其某些特定的行与列生产列表的关系。
代码Demo简易大致是这样的
f=open(filename,r)
list1=[row for row in f.readlines()]
list2=[row for row in f.readlines()]
用print输出的时候 list1不为空,list2为空。
当时就产生了疑问?难道打开的文件句柄只能使用一次吗?无论怎么处理效果都是一样的。
突然让我想到一个文件指针。
list1在处理完毕数据的时候,文件指针已经归位文件末尾。文件末尾内容为空。我们需要利用f.seek()将文件移到文件头的位置。
需要在原来的代码加上
list1=[row for row in f.readlines()]
f.seek(0,0)
list2=[row for row in f.readlines()]
list1 list2输出想要的内容
很肯定的告诉大家,文件返回的句柄对象只能使用一次这是错误的。在没有调用f.close()之前 不会被释放掉的。只是我们文件处理了改变了文件指针的位置。将它移动到想到的即可,然后再去处理数据。

你可能感兴趣的:(python,pandas,python,数据分析)