openpyxl не закрывает книгу в файловой системе Linux - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь запустить простую программу на Python (openpyxl_example.py), используя модуль openpyxl, чтобы создать новую книгу Excel в моей системе Linux. Программа сохранит книгу в каталоге, в котором я запускаю файл .py, но выдает ошибку после запуска с неполной книгой.

Я успешно проверил приведенный ниже код на моей машине с Win10, однако не могузаставить его работать без ошибок в Linux. Я запускаю это на Red Hat Linux Server версии 7.6.

#!/usr/bin/env python

from openpyxl import Workbook
import time

book = Workbook()
sheet = book.active

sheet['A1'] = 56
sheet['A2'] = 43

now = time.strftime("%x")
sheet['A3'] = now

book.save("sample.xlsx")

Я установил модуль openpyxl на стороне Linux, и установка python настроена правильно. Тем не менее, я продолжаю получать следующую ошибку, появляющуюся после выполнения вышеупомянутого кода.

    Traceback (most recent call last):
  File "openpyxl_example.py", line 15, in <module>
    book.save("sample.xlsx")
  File "/usr/local/lib/python3.6/site-packages/openpyxl/workbook/workbook.py", line 408, in save
    save_workbook(self, filename)
  File "/usr/local/lib/python3.6/site-packages/openpyxl/writer/excel.py", line 293, in save_workbook
    writer.save()
  File "/usr/local/lib/python3.6/site-packages/openpyxl/writer/excel.py", line 275, in save
    self.write_data()
  File "/usr/local/lib/python3.6/site-packages/openpyxl/writer/excel.py", line 67, in write_data
    archive.writestr(ARC_APP, tostring(props.to_tree()))
  File "/usr/local/lib/python3.6/zipfile.py", line 1659, in writestr
    dest.write(data)
  File "/usr/local/lib/python3.6/zipfile.py", line 1030, in close
    self._fileobj.seek(self._zinfo.header_offset)
OSError: [Errno 28] No space left on device
Exception ignored in: <bound method ZipFile.__del__ of <zipfile.ZipFile filename='sample.xlsx' mode='w'>>
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/zipfile.py", line 1663, in __del__
    self.close()
  File "/usr/local/lib/python3.6/zipfile.py", line 1672, in close
    raise ValueError("Can't close the ZIP file while there is "
ValueError: Can't close the ZIP file while there is an open writing handle on it. Close the writing handle before closing the zip.

Я упоминал предыдущий вопрос о том, что это может произойти из-за проблемы с пробелом. ( Python вызывает: IOError: [Errno 28] Нет места на устройстве: «../results/32766.html» на диске с большим количеством места ). Исходя из этого, я удалил все файлы / tmp / и использовал команду "df", чтобы проверить и освободить место на моем сервере Linux.

В настоящее время я обнаружил следующее, смонтированное в каталоге / home / свсе пространство используется.

/dev/mapper/rootVG-homeLV                                            999320      930508           0 100% /home

Что это означает и повлияет ли это на выполнение кода в подкаталоге в / home /? (Я запускаю это в каталоге / home / pocuser / Python Tool)

Любое руководство по запуску этой программы openpyxl было бы замечательно. Спасибо!

...