我试图找出我的文件指针是否在EOF中,如下例所示:(编辑)
f = open("test.dat")
someFunctionDoingStuffOn_f(f)
if f == EOF: # to keep something like this would be important in my case
print "EOF reached"
else:
print "Not EOF"
但我不知道Python中是否有类似的内容。
我已经通过添加someFunctionDoingStuffOn_f(f)编辑了这个问题,因为我可能不知道f之前发生了什么。这排除了一些方法。
答案 0 :(得分:1)
根据martijns评论,你可以使用Data.HashMap
,但我真的不知道它会如何产生影响:
tell
import os
R.f.seek(0, os.SEEK_END)
n = R.f.tell()
R.f.seek(0)
while R.f.tell() < n:
line = R.f.readline()
print(line)
print("Not at EOF")
print("At EOF")
是previous question中您的班级的文件对象,但您不能使用islice以相同的方式使用tell。
或者使用if来更像你问题中的逻辑:
R.f
答案 1 :(得分:0)
通常不应该这样做。但是,在您的情况下,这可能是合理的。如果我的建议不适用,请提供一些背景信息。
1
with open("test.dat", "r") as f:
for line in f:
do_something_with_line(line)
2
with open("test.dat", "r") as f:
whole_file = file.read()
编辑后:
看看https://docs.python.org/3.5/library/io.html。您可以使用.read(maxbytes)
来做您想做的事。