Модули напрямую работающие с файлами.
Выше мы уже решали задачи по прямому чтению и созданию файлов, это были файлы форматов .txt и .csv, для первого формата никаких модулей не нужно, для второго модуль содержится среди стандартных. Как вы понимаете, работа с обычным текстом не представляет трудностей для Питон, поэтому можно напрямую работать со множеством форматов файлов, которые по сути являются текстовыми файлами с особым форматированием(не поленитесь и откройте, если вы этого никогда не делали, файлы .dxf, .docx, .svg в обычном блокноте, вы увидите их содержимое). В этой главе мы рассмотрим работу с файлами MSO Excel - xlsx, таблицы, MSO Word - docx, текстовые документы, Autocad - dxf, svg - векторная графика, scad - OpenSCAD, трехмерные тела, pdf - Adobe документы, jpg, png, bmp - растровая графика. Latex - документы. Есть и другие форматы файлов, которые могут обрабатываться Питоном, но думаю перечисленных выше форматов будет достаточно для работы инженера.
Давайте начнем изучать модули для работы с Excel файлами, это, наверное, наиболее широко распространенный формат для хранения, обмена и обработки информации в инженерной среде. Модули мы уже установили, теперь можем начать работу с ними. Импортируем модуль xlrd, его название есть сокращение от excel read, то есть чтение Эксель. Предварительно заготовим тестовый файл, желательно многостраничный, запомним путь к нему. Напишем код:
import xlrd
fname = 'c:/test.xlsx'
# Открываем файл
xl_workbook = xlrd.open_workbook(fname)
# Получаем список листов и выводим на печать
sheet_names = xl_workbook.sheet_names()
print('Sheet Names', sheet_names)
Получаем:
Sheet Names ['Лист1', 'Лист2', 'Лист3']
Теперь напишем код, извлекающий информацию из ячеек одного листа и выводящий ее на печать:
# Импортируем модуль для работы с файлами Excel
import xlrd
# Указываем путь к файлу
fname = 'd:/test.xlsx'
# Открываем файл
xl_workbook = xlrd.open_workbook(fname)
# Открываем лист по индексу(нумерация начинается с нуля)
# Лист, также, можно открыть по имени, методом sheet_by_name
sheet = xl_workbook.sheet_by_index(0)
# Методом nrows получаем строки на листе и проходим по ним циклом.
# Вложенным циклом проходим по элементам строк и выводим их на печать.
# Точно также можно пройтись по столбцам методами ncols и col_values.
for rownum in range(sheet.nrows):
row = sheet.row_values(rownum)
for c_el in row:
print(c_el)
Официальная справка по модулю находится тут https://xlrd.readthedocs.io/en/latest/, в левом нижнем углу есть пункт Read the Docs, откуда можно скачать справку в виде html, epub или pdf. Можно просто поискать информацию о работе модуля в интернете, в том числе видеоролики. И не забывайте использовать метод dir для исследования объектов в Питон, создавайте в нужных вам местах точки информирования такого вида: print(dir(object)), отключая остальную часть кода тройными кавычками.
Как видим, чтение файлов xlsx является делом простым, теперь научимся создавать файлы Excel с помощью модуля xlwt, в названии которого опять видим сокращение от Excel write. Создавать файлы тоже не так сложно, напишем код:
# Импорт модуля для создания файлов Excel
import xlwt
# Создаем новый файл
wb = xlwt.Workbook()
# Создаем новый лист с именем Test
ws = wb.add_sheet('Test')
# В первую строчку, первый столбец записываем слово
ws.write(0, 0, 'Test')
# Сохраняем файл
wb.save('d:/example.xls')
Если все сделано правильно, то создастся такой файл:
Как видим создание файла, также, не представляет трудностей. Мы рассмотрели простейший случай, но модуль не ограничивается лишь этими инструментами, он обладает массой методов по организации таблиц. Можно управлять шрифтами, стилями, цветами, соединять ячейки, вставлять картинки, формулы. Кроме того можно не только создавать новые файлы, а еще редактировать существующие. Обо всем этом можно, как всегда, узнать в документации и доступных интернет ресурсах. К Excel мы еще вернемся, когда будем изучать софт по COM-технологии.
Комментарии
Отправить комментарий