我正在尝试在for循环中使用readline on file。问题是我开始收到I / O错误。看来我在10条读取线后得到了I / O错误。
这是我的功能:
def getAll():
with open("nodes2.txt", "r+") as f:
for i in range(0, 200):
print "**%s**"%(i)
try:
file = f.readline()
file = file[:-1]
# print "*%s*" % (file)
entities = getAllPagesEntities(file)
# print entities
for en in entities:
try:
dict = getFirmAttributes(en)
printToFile(dict)
except Exception,e:
with open("log_getFirmAttributes.txt","a") as f:
f.write(str(e))
f.write("\n")
except Exception,e:
with open("log_readFile.txt","a") as f:
f.write(str(e))
f.write("\n")
这是一个印刷的例外情况:
I/O operation on closed file
我认为这个问题不能由其他已使用的函数引起,所以我不在这里附加它们。我认为它是由使用的文件引起的,但当我尝试读取200并打印它们时,一切都很完美。
with open("nodes2.txt", "r+") as f:
for i in range(0, 200):
print f.readline()
你知道可能是什么问题吗?感谢
答案 0 :(得分:3)
except
块中的以下行会覆盖f
,导致打开文件被关闭。
with open("log_readFile.txt","a") as f:
f.write(str(e))
f.write("\n")
更改文件的名称f
以附加到另一个名称将解决问题:
with open("log_readFile.txt", "a") as logf:
logf.write(str(e))
logf.write("\n")