PermissionError [Errno 13] при записи в файл после использования lockfile в python - PullRequest
0 голосов
/ 29 ноября 2018

Я хотел бы безопасно открыть и записать файл, поэтому я решил использовать библиотеку python fileLock.Это мой код:

            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 ??

Спасибо!

1 Ответ

0 голосов
/ 29 ноября 2018

Вам необходимо создать отдельный файл блокировки, как показано здесь :

from filelock import Timeout, FileLock

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

Не использовать a FileLock , чтобы заблокировать файл, в который вы хотите записать, вместо этого создайте отдельный файл .lock , как показано выше.

Обратите внимание на расширение .lock для FileLock.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...