К основному контенту

Модули напрямую работающие с файлами.


Выше мы уже решали задачи по прямому чтению и созданию файлов, это были файлы форматов .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-технологии.

Комментарии

Популярные сообщения из этого блога

Pyth Anykeyeff PYTHON для инженеров Книга для широкого круга читателей, от любознательных школьников до неунывающих пенсионеров.  ПРЕДИСЛОВИЕ. Зачем инженеру две змеи? Здравствуй уважаемый читатель. Надеюсь, эта книга станет для тебя источником полезных знаний и ты, вслед за мной, ощутишь радость избавления от изнуряющей, отупляющей рутины. Идея написания этой книги витала вокруг меня последние пару лет, но не находилось катализатора. И вот, в одном из разговоров с моим коллегой и другом, Вадимом, им была высказана мысль написания мной книги о Питоне для инженеров. Мысль прижилась, за что я выражаю Вадиму особую благодарность. Книг о Питоне сегодня написано множество, некоторые из них переведены на русский язык, но это почти все учебники по языку, я же хотел написать не учебник по языку программирования, а руководство, как применить программирование там, где его либо вовсе не применяли, либо применяли крайне редко. Программирование вошло в нашу жизнь давно и
Поход за модулями. Как я уже писал выше, сегодня в свободном доступе имеются сотни тысяч модулей Питон. Среди них мы можем обнаружить полезные для нашей работы, это математические и геометрические модули, модули для анализа данных и построения трехмерных тел, dxf, pdf, docx, xlsx файлов и т. д. Список крайне обширен. Основным местом хранения модулей является сайт Pypi.org, на нем хранится около 150 тыс. различных проектов, мы тоже будем пользоваться этим сайтом, но прежде немного поговорим о дистрибутивах Питона и средах разработки. Питон, который мы установили, имеет минимальный набор модулей. Однако есть другие дистрибутивы, например Anaconda, совершенно безвозмездно поддерживаемый и постоянно обновляемый мировым научным сообществом. Анаконда устанавливается с сотнями модулей, необходимых для научно-исследовательской деятельности, кроме того устанавливаются дополнительные инструменты, как Спайдер, интерактивный Питон и Юпитер Ноутбук, они делают программирование гораздо удобным и
Назначаем конусу материал. Продолжая совершенствовать наш скрипт, попробуем добавить возможность назначения конусу материала, по плотности которого мы сможем вычислить массу. Для этого нам придется совершить следующий поход за знаниями. Основные операторы программирования. Мы с вами уже написали свою первую программу, но это всего лишь простая инструкция, последовательно исполняемая компьютером. Для того чтобы добавить возможность выбора материала нам придется окунуться в мир настоящего программирования и освоить основополагающие операторы, которые позволят нам строить разветвленные алгоритмы для решения наших задач. Мы уже сможем дать компьютеру возможность принимать решения самостоятельно, исходя из полученных извне или вычисленных в теле программы данных. Мы заставим машину работать вместо нас, но насколько хорошо она это будет делать, всецело зависит от нас. Основной операцией в программировании является проверка условия. В Python, как и во многих других языках программирова