我有一个python函数,可以通过以下方式读取文件:
def parse(filename, position): with open(filename,'r') as file: for index, line in enumerate(islice(file,position,None), 1): ... do something print line file.close() return index
每当另一个不受我控制的应用程序将一些数据写入文件时,就会调用此函数,这样我就会尽量避免同时读取和写入,因为我不希望文件是损坏即可。无论如何,不保证读取和写入不会同时发生。
我所知道的是:
我想知道的是:
答案 0 :(得分:0)
如果你看一下
with open(filename,**'r'**) as file:
在这里,您以只读格式打开文件,这意味着您无法编写文件,尝试自己编写文件,它会抛出异常,说只打开文件进行阅读。内部文件对象保存您打开的模式,无论何时调用操作,它都会检查您打开文件的模式,如果它不合法(打开读取和调用写入不合法),它&# 39;立即抛出异常。
另一件事是,你专门致电
file.close()
这是没用的,当你退出循环时它已经关闭了,而在with loop
退出时它会调用file。退出()方法,这将最终关闭文件。