У меня есть программа, выводящая большой массив данных pandas. Программа используется в приложении для мониторинга, поэтому конечный пользователь должен постоянно просматривать результаты программы в заданной книге Excel, например «Output.xlsx». Я хочу сделать программу максимально быстрой, поэтому я записываю кадр данных в файл csv "Speed.csv", а затем преобразую файл csv в "Output.xlsx".
from openpyxl import Workbook
import csv
def speed_writing(df):
df.to_csv(r'Speed.csv')
def csv_to_excel():
wb = Workbook()
ws = wb.active
with open('Speed.csv', 'r') as f:
for row in csv.reader(f):
ws.append(row)
wb.save('Output.xlsx')
speed_writing(df)
csv_to_excel()
Теперь этоработает хорошо только когда "Output.xlsx" закрыт. Если я открываю файл, запускаю код и получаю следующую трассировку:
Traceback (most recent call last):
File "trade_export.py", line 140, in <module>
csv_to_excel()
File "trade_export.py", line 130, in csv_to_excel
wb.save('Output.xlsx')
File "C:\Users\AppData\Local\Programs\Python\Python36\lib\site-packages\openpyxl\workbook\workbook.py", line 391, in save
save_workbook(self, filename)
File "C:\Users\\AppData\Local\Programs\Python\Python36\lib\site-packages\openpyxl\writer\excel.py", line 282, in save_workbook
archive = ZipFile(filename, 'w', ZIP_DEFLATED, allowZip64=True)
File "C:\Users\AppData\Local\Programs\Python\Python36\lib\zipfile.py", line 1113, in __init__
self.fp = io.open(file, filemode)
PermissionError: [Errno 13] Permission denied: 'Output.xlsx'
Это из-за локальных настроек или из-за того, что я не могу сохранить открытые файлы с openpyxl? Любые советы, решения приветствуются!