我想安全地打开并写入文件,因此我决定使用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的工作原理吗?
谢谢!
答案 0 :(得分:1)
您需要创建一个单独的锁定文件,如图here:
from filelock import Timeout, FileLock lock = FileLock("high_ground.txt.lock") with lock: open("high_ground.txt", "a").write("You were the chosen one.")
请勿使用 文件锁定来锁定要写入的文件,而是创建一个单独的文件 .lock 文件,如上所示。
请注意.lock
的{{1}}扩展名。