нарушение обмена read_excel панд - PullRequest
2 голосов
/ 25 апреля 2019

У меня есть несколько временных рядов в файле Excel.Моя цель - проверить, существует ли файл Excel.Если это так, загрузите его, используя pd.read_excel, если не вызовите удаленный сервер, чтобы загрузить данные, а затем сохраните их в файле Excel.

Попытка выполнить запрос «просить прощение, а не разрешение»"Анти-шаблон, я делаю следующее:

try:
    citi_px = pd.read_excel(open('citi_credit_px.xlsx', 'rb'), sheet_name='data')
    startdate = yesterday
except IOError:
    startdate = whatever

И, похоже, работает как ожидалось.Тем не менее, у меня было неправильное имя листа в моем файле, которое подняло ValueError, и теперь файл Excel заблокирован Python, и я не могу изменить или удалить его.Очевидный обходной путь - сделать копию и изменить ее, но я хотел бы знать, как правильно:

1) Закройте файл Excel с помощью Pandas / Python Internals
2) Используйте контекстные менеджеры дляпопробуйте поймать

Я ценю ваши предложения и понимание!

1 Ответ

2 голосов
/ 25 апреля 2019

см. Этот вопрос тот же вопрос. Лучше использовать with, так как он также собирается закрыть файл в вашем блоке try.

def foo():
   with open("myfile.csv", "w") as f:
...