在python中使用lockfile后写入文件时出现PermissionError[Erno 13]



我想安全地打开并写入文件,所以我决定使用fileLock python库。这是我的代码:

with filelock.FileLock('../rsc/datasets/train/' + server_predict.remove_special_chars(str(id_park)) + '.csv'):
with open('../rsc/datasets/train/' + server_predict.remove_special_chars(str(id_park)) + '.csv', mode='a') as file:
for line in data_by_id.values:
a = """ + server_predict.remove_special_chars(str(line[0])) + "","" + str(line[1]) + ""," + str(line[2]) #+ "n"
file.write(a)

然而,这会引发PermissionError异常,有时会在上发生

file.write(a(

行和行中的其他

对于data_by_id.values 中的行

有任何线索表明这个错误可能来自哪里吗?是我不了解fileLock的工作原理吗??

谢谢!

您需要创建一个单独的锁文件,如下所示:

from filelock import Timeout, FileLock
lock = FileLock("high_ground.txt.lock")
with lock:
open("high_ground.txt", "a").write("You were the chosen one.")

不要使用FileLock来锁定要写入的文件,而是创建一个单独的.lock文件,如上所示。

注意FileLock.lock扩展名。

相关内容

  • 没有找到相关文章

最新更新