Панды - Чтение / запись в тот же CSV быстро .. Получение ошибок прав - PullRequest
0 голосов
/ 05 июня 2018

У меня есть сценарий, который я пытаюсь выполнить каждые 2 секунды ... для начала он читает .csv с pd.read_csv.Затем выполняет модификации на df и, наконец, перезаписывает исходный .csv с помощью to_csv.

. Я сталкиваюсь с PermissionError: [Errno 13] Permission denied:, и из своих поисков я считаю, что это из-за слишком частой попытки открытия / записи.в тот же файл, хотя я могу ошибаться.

  • Любые предложения, как этого избежать?
  • Не уверен, что актуально, но файл хранится в папке на одном диске.
  • Время от времени он сохраняется, казалось бы, случайно.
  • Увеличение времени ожидания, чтобы скрипт выполнялся медленнее, помогает, но я хочу, чтобы он работал быстро!

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Поскольку вы не передаете свой точный код, мы можем только предполагать, что вы храните свой фрейм данных следующим образом:

df.to_csv("myfile.csv", sep = ",", index = False)    # Drop to csv w/o context manager

В этом случае вы испытываете поведение из-за того, что файл не был закрытдолжным образом.Это распространенная ошибка.Я рекомендую использовать оператор with - , основным назначением которого является безопасная для исключения очистка объекта, используемого внутри (в данном случае ваш .csv).Другими словами, with обеспечивает закрытие файлов, снятие блокировок, восстановление контекстов и т. Д.

with open("myfile.csv", "w") as reference:           # Drop to csv w/ context manager
     df.to_csv(reference, sep = ",", index = False)
# As soon as you are here, reference is closed
0 голосов
/ 05 июня 2018

Закройте файл, который вы пытаетесь прочитать и записать, а затем попробуйте запустить скрипт.Надеюсь, это поможет

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