Python. Основы. Работа с файлами. Лекция 11 презентация

Содержание

Слайд 2

Чаще всего данные для обработки поступают из внешних источников – файлов.
Существуют различные форматы

файлов, наиболее простой и универсальный – текстовый. Он открывается в любом текстовом редакторе (например, Блокноте). Расширения у текстовых файлов: .txt, .html, .csv (их достаточно много).
Помимо текстовых есть другие типы файлов (аудио, видео, .pdf, .doc, .ppt и пр.), которые открываются в специальных программах (аудио или видео проигрывателях, Pdf reader, Word и пр.).

Работа с файлами в Python

Слайд 3

Работа с файлами в Python

Обыкновенные текстовые файлы
Операции с файлами
Текстовые файлы
Обыкновенные текстовые файлы (произвольный

формат хранения данных)
Файлы в формате CSV (значения, разделенные запятыми)
Файлы в формате JSON (данные представлены в виде пар "ключ : значение" в частично структурированном формате)
Файлы в .doc, .docx формате (Word)
Табличные файлы
Файлы в формате CSV
Файлы Excel
PDF файлы

Слайд 4

Работа с текстовыми файлами

Слайд 5

Работа с файлами

Слайд 6

file = open('example_text.txt', 'r')
contents = file.read()
print(contents)
file.close()

Чтение данных из файла

Слайд 7

Список режимов доступа к файлу в Python

Слайд 8

Атрибуты файлового объекта в Python

Как только файл был открыт и у вас появился

файловый объект, вы можете получить следующую информацию о нем

Слайд 9

my_file = open("some.txt", "w")
print("Имя файла: ", my_file.name)
print("Файл закрыт: ", my_file.closed)
print("В каком режиме файл открыт: ",  my_file.mode)
print("Пробелы: ", my_file.softspace)

Свойства существующего файла

Слайд 10

my_file = open("myFile.txt", "w+")
my_file.write("Привет, файл! ")
my_file.close()

Создание текстового файла

В начале объявляется переменная my_file. После этого используются встроенные функции

open и write для открытия и записи в файл. "w+" сообщает, что запись будет осуществляться в новый файл. Если он существует, то новое содержимое нужно записать поверх уже существующего. Если же вместо этого использовать параметр "w", тогда файл будет создан только в том случае, если он не существовал до этого.
Важно заметить, что в конце файл всегда нужно закрывать, чтобы изменения сохранились.

Слайд 11

my_file = open("myFile.txt", "a+")
my_file.write("Добавляем новый текст")
my_file.close()
Если нужно добавить новые данные в файл, тогда вместо "w+" нужно

просто использовать параметр "a+".
Однако в таком случае не будет добавлена новая строка, поэтому важно не забыть использовать символ \n.

Добавление информации в файл

Слайд 12

my_file = open("myFile.txt", "a+")
file_contents == my_file.read()
print(file_contents)

Чтение данных из созданного нами файла

Привет, файл! Добавляем новый текст

Слайд 13

Создать файл
my_file = open("file.txt", "w+")
Записать в файл
my_file.write("Привет, файл!")
Сохранить и закрыть файл
my_file.close()

Кратко

Слайд 14

Существует много способов чтение из файла построчно в Python.
Можно считать строки в

список или обращаться к каждой из строк в цикле при помощи итератора или вызова функции объекта file.
Мы будем считывать файл построчно, используя функции readline(), readlines() и объект файла на примерах различных программ.

Чтение файла

Слайд 15

Открываем файл в режиме чтения. При этом возвращается дескриптор файла.
Создаём бесконечный цикл while.
В

каждой итерации считываем строку файла при помощи readline().
Если строка не пустая, то выводим её и переходим к следующей. Вы можете проверить это, используя конструкцию if not. В противном случае файл больше не имеет строк и мы останавливаем цикл с помощью break.
К моменту выхода из цикла мы считаем все строки файла в итерациях одну за другой.
После этого мы закрываем файл, используя функцию close.

Чтение файла построчно функцией readline()

Слайд 16

# получим объект файла
file1 = open("sample.txt", "r")
while True:
    # считываем строку
    line = file1.readline()
    # прерываем цикл, если строка пустая
    if not line:
        break
    # выводим строку
    print(line.strip())
# закрываем файл
file1.close

Чтение файла построчно функцией readline()

Слайд 17

Функция readlines() возвращает все строки файла в виде списка.
Пройдясь по списку и

получить доступ к каждой строке.
Вначале мы должны открыть текстовый файл и получить список всех его строк, используя функцию readlines().
После этого используя цикл for, чтобы обходим данный список.

Чтение строк как список функцией readlines()

Слайд 18

# получим объект файла
file1 = open("sample.txt", "r")
# считываем все строки
lines = file1.readlines()
# итерация по строкам
for line in lines:
    print(line.strip())
# закрываем файл
file1.close

Чтение строк как список функцией readlines()

Слайд 19

В предыдущем примере, мы считываем каждую строку файла при помощи бесконечного цикла while

и функции readline().
Но можно использовать цикл for для файлового объекта, чтобы в каждой итерации цикла получать строку, пока не будет достигнут конец файла.
# получим объект файла
with open("sample.txt", "r") as file1:
    # итерация по строкам
    for line in file1:
        print(line.strip())

Считываем файл построчно из объекта File

Слайд 20

Операции с файлами (удаление, перемещение)

Слайд 21

Обработка файлов в Python выполняется с помощью стандартного модуля os включает создание, переименование,

перемещение, удаление файлов и папок, а также получение списка всех файлов и каталогов и многое другое.
Достаточно лишь импортировать его и можно приступать к использованию — для этого используются path и методы isfile(), isdir() или exists()и многие другие.
Подключение модуля
import os

Операции с файлами

Слайд 22

Для получения текущего рабочего каталога используется os.getcwd():
import os
# вывести текущую директорию
print("Текущая деректория:", os.getcwd())
os.getcwd() возвращает строку в Юникоде, представляющую текущий

рабочий каталог. Вот пример вывода: Текущая директория: C:\python3\bin

Вывод текущей директории

Слайд 23

Для создания папки/каталога в любой операционной системе нужна следующая команда:
# создать пустой каталог (папку)
os.mkdir("folder")
После ее выполнения в

текущем рабочем каталоге тут же появится новая папка с названием «folder».

Создание папки

Слайд 24

Если запустить ее еще раз, будет вызвана ошибка FileExistsError, потому что такая папка

уже есть. Для решения проблемы нужно запускать команду только в том случае, если каталога с таким же именем нет. Этого можно добиться следующим образом:
# повторный запуск mkdir с тем же  именем вызывает FileExistsError, 
# вместо этого запустите:
if not os.path.isdir("folder"):
     os.mkdir("folder")
Функция os.path.isdir() вернет True, если переданное имя ссылается на существующий каталог.

Создание папки

Слайд 25

Менять директории довольно просто. Проделаем это с только что созданным:
# изменение текущего каталога на 'folder'
os.chdir("folder")
Еще раз выведем рабочий

каталог:
# вывод текущей папки
print("Текущая директория изменилась на folder:", os.getcwd())
Вывод:
Текущая директория изменилась на folder: C:\python3\bin\folder

Изменение директории

Слайд 26

Предположим, вы хотите создать не только одну папку, но и несколько вложенных:
# вернуться в предыдущую директорию
os.chdir("..")
# сделать несколько вложенных папок
os.makedirs("nested1/nested2/nested3")
Это создаст

три папки рекурсивно, как показано на следующем изображении:

Создание вложенных папок

Слайд 27

Для создания файлов в Python модули не нужны. Можно использовать встроенную функцию open().


Она принимает название файла, который необходимо создать в качестве первого параметра и желаемый режим открытия — как второй:
# создать новый текстовый файл
text_file = open("text.txt", "w")
# запить текста в этот файл
text_file.write("Это текстовый файл")
w значит write (запись), a — это appending (добавление данных к уже существующему файлу), а r — reading (чтение).

Создание файлов

Слайд 28

С помощью модуля os достаточно просто переименовать файл. Поменяем название созданного в прошлом

шаге.
# переименовать text.txt на renamed-text.txt
os.rename("text.txt", "renamed-text.txt")
Функция os.rename() принимает 2 аргумента: имя файла или папки, которые нужно переименовать и новое имя.

Переименование файлов

Слайд 29

Функцию os.replace() можно использовать для перемещения файлов или каталогов:
# заменить (переместить) этот файл в другой каталог
os.replace("renamed-text.txt", "folder/renamed-text.txt")
Стоит обратить внимание, что это

перезапишет путь, поэтому если в папке folder уже есть файл с таким же именем (renamed-text.txt), он будет перезаписан.

Перемещение файлов

Слайд 30

# распечатать все файлы и папки в текущем каталоге
print("Все папки и файлы:", os.listdir())
Функция os.listdir() возвращает список, который содержит имена файлов в папке. Если в качестве

аргумента не указывать ничего, вернется список файлов и папок текущего рабочего каталога:
Все папки и файлы: ['folder', 'handling-files', 'nested1', 'text.txt']

Список файлов и директорий

Слайд 31

А что если нужно узнать состав и этих папок тоже? Для этого нужно

использовать функцию os.walk():
# распечатать все файлы и папки рекурсивно
for dirpath, dirnames, filenames in os.walk("."):
    # перебрать каталоги
    for dirname in dirnames:
        print("Каталог:", os.path.join(dirpath, dirname))
    # перебрать файлы
    for filename in filenames:
        print("Файл:", os.path.join(dirpath, filename))
os.walk() — это генератор дерева каталогов. Он будет перебирать все переданные составляющие. Здесь в качестве аргумента передано значение «.», которое обозначает верхушку дерева:
Метод os.path.join() был использован для объединения текущего пути с именем файла/папки.

Список файлов и директорий

Слайд 32

Модуль os предоставляет множество функций для работы с операционной системой, причём их поведение,

как правило, не зависит от ОС, поэтому программы остаются переносимыми.
Наиболее часто используемые функции это:
os.name - имя операционной системы. Доступные варианты: 'posix', 'nt', 'mac', 'os2', 'ce', 'java'.
os.environ - словарь переменных окружения. Изменяемый (можно добавлять и удалять переменные окружения).
os.uname() - информация об ОС. возвращает объект с атрибутами: sysname - имя операционной системы, nodename - имя машины в сети (определяется реализацией), release - релиз, version - версия, machine - идентификатор машины.

Модуль os

Слайд 33

os.access(path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True) - проверка доступа к объекту у текущего

пользователя. Флаги: os.F_OK - объект существует, os.R_OK - доступен на чтение, os.W_OK - доступен на запись, os.X_OK - доступен на исполнение.
os.chdir(path) - смена текущей директории.
os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True) - смена прав доступа к объекту (mode - восьмеричное число).
os.chown(path, uid, gid, *, dir_fd=None, follow_symlinks=True) - меняет id владельца и группы (Unix).
os.getcwd() - текущая рабочая директория.

Модуль os

Слайд 34

os.link(src, dst, *, src_dir_fd=None, dst_dir_fd=None, follow_symlinks=True) - создаёт жёсткую ссылку.
os.listdir(path=".") - список файлов

и директорий в папке.
os.mkdir(path, mode=0o777, *, dir_fd=None) - создаёт директорию. OSError, если директория существует.
os.makedirs(path, mode=0o777, exist_ok=False) - создаёт директорию, создавая при этом промежуточные директории.
os.remove(path, *, dir_fd=None) - удаляет путь к файлу.
os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None) - переименовывает файл или директорию из src в dst.
os.renames(old, new) - переименовывает old в new, создавая промежуточные директории.

Модуль os

Слайд 35

os.replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None) - переименовывает из src в dst с принудительной

заменой.
os.rmdir(path, *, dir_fd=None) - удаляет пустую директорию.
os.truncate(path, length) - обрезает файл до длины length.
os.utime(path, times=None, *, ns=None, dir_fd=None, follow_symlinks=True) - модификация времени последнего доступа и изменения файла. Либо times - кортеж (время доступа в секундах, время изменения в секундах), либо ns - кортеж (время доступа в наносекундах, время изменения в наносекундах).
os.system(command) - исполняет системную команду, возвращает код её завершения (в случае успеха 0).

Модуль os

Слайд 36

os.walk(top, topdown=True, onerror=None, followlinks=False) - генерация имён файлов в дереве каталогов, сверху вниз

(если topdown равен True), либо снизу вверх (если False). Для каждого каталога функция walk возвращает кортеж (путь к каталогу, список каталогов, список файлов).
os.urandom(n) - n случайных байт. Возможно использование этой функции в криптографических целях.
os.path - модуль, реализующий некоторые полезные функции на работы с путями.
и многие другие функции

Модуль os

Слайд 37

Работа с текстовыми файлами в формате CSV, JSON

Слайд 38

CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный

для представления табличных данных. Строка таблицы соответствует строке текста, которая содержит одно или несколько полей, разделенных запятыми.
JSON (JavaScript Object Notation) — текстовый формат обмена данными, удобный для чтения и написания как человеком, так и компьютером. Он основан на подмножестве языка программирования JavaScript.
CSV и JSON — вероятно, наиболее распространенные форматы, используемые для приема, хранения неструктурированных или частично структурированных данных и обмена ими.

Формат CSV, JSON

Слайд 39

CSV (от англ. Comma-Separated Values — значения, разделённые запятыми)

Слайд 40

CSV — текстовой формат, ориентированный на работу с данными несложных электронных таблиц, хранящихся

в обычных тестовых файлах.
Модуль csv упрощает синтаксический анализ (парсинг) CSV-файлов.
Подключение
import csv

CSV

Слайд 41

Файл example.csv, из которого будем читать:
05.04.2015 13:34;Яблоки;73
05.04.2015 3:41;Вишни;85
06.04.2015 12:46;Груши;14

Чтение CSV-файлов

Слайд 42

Чтобы прочитать данные из CSV-файла, необходимо создать объект Reader, который обеспечивает возможность итерирования

по строкам файла:
import csv
exampleFile = open('example.csv', encoding = 'UTF-8')
exampleReader = csv.reader(exampleFile, delimiter = ';')
exampleData = list(exampleReader)
print(exampleData)
exampleFile.close()

Чтение данных из файла CSV

[['05.04.2015 13:34', 'Яблоки', '73'],
['05.04.2015 3:41', 'Вишни', '85'],
['06.04.2015 12:46', 'Груши', '14']]

Слайд 43

Теперь, когда у нас есть список списков, можно обращаться к отдельным ячейкам с

помощью exampleData[row][col].
В случае больших CSV-файлов целесообразно использовать объект Reader в цикле for.
Тем самым удается избежать загрузки всего файла в оперативную память.

CSV

Слайд 44

import csv
exampleFile = open('example.csv', encoding = 'UTF-8')
exampleReader = csv.reader(exampleFile, delimiter = ';')
for row in exampleReader:
    string = 'Строка #' + str(exampleReader.line_num) + ' '
    for value in row:
        string = string + value + ' '
    print(string)
exampleFile.close()

CSV

Строка #1 05.04.2015 13:34 Яблоки 73
Строка #2 05.04.2015 3:41 Вишни 85
Строка

#3 06.04.2015 12:46 Груши 14

Для вывода номера строки используется свойство line_num объекта Reader. Цикл по объекту Reader можно выполнить только один раз. Для повтороно чтения данных необходимо заново создать объект Reader, вызвав метод csv.reader().

Слайд 45

import csv
exampleFile = open('output.csv', 'w', encoding = 'UTF-8’, newline = '')
exampleWriter = csv.writer(exampleFile, delimiter = ';')
exampleData = [['05.04.2015 13:34','Яблоки','73’],  ['05.04.2015 3:41','Вишни','85'], ['06.04.2015 12:46’, 'Груши','14']]
for row in exampleData:
    exampleWriter.writerow(row)
exampleFile.close()

Запись CSV-файлов

При работе в Windows функции open() надо передать именованный аргумент newline

= '', иначе в файле output.csv появятся лишние пустые строки. С помощью именованного аргумента lineterminator метода csv.writer() можно заменить разделитель строк.

Файл output.csv:
05.04.2015 13:34;Яблоки;73
05.04.2015 3:41;Вишни;85
06.04.2015 12:46;Груши;14

Слайд 46

JSON (JavaScript Object Notation)

Слайд 47

JSON (JavaScript Object Notation) — текстовый формат обмена данными, удобный для чтения и

написания как человеком, так и компьютером. Он основан на подмножестве языка программирования JavaScript.
JSON основан на двух структурах данных:
Коллекция пар ключ-значение (объект)
Упорядоченный список значений (массив)
Подключение
import json

JSON

Слайд 48

Файлы в формате JSON имеют несколько преимуществ по сравнению с CSV-файлами.
JSON поддерживает иерархические

структуры, упрощая хранение связанных данных в одном документе и представление сложных связей.
Большинство языков предоставляют упрощенные библиотеки сериализации JSON или встроенную поддержку десериализации JSON в объекты.
JSON поддерживает списки объектов, помогая избежать беспорядочных преобразований списков в реляционную модель данных.
JSON — это широко используемый формат файлов для баз данных NoSQL, таких как MongoDB, Couchbase и Azure Cosmos DB.

JSON в сравнении с CSV-файлами

Слайд 49

В нотации JSON это выглядит так:
Объект — неупорядоченный набор пар ключ-значение. Объект начинается

с { и заканчивается }. Ключ и значение разделяются двоеточием, сами пары ключ-значение разделяются запятой.
{"email" : "ivanov@mail.ru", 
 "name"  : "Иванов Иван Иванович"}

JSON

Слайд 50

Массив — упорядоченная коллекция значений.
Массив начинается с [ и заканчивается ]. Значения

разделены запятой.
["ivanov@mail.ru", "petrov@mail.ru", 
"sidorov@mail.ru"]
Значение может быть строкой в двойных кавычках, числом, true, false, null, объектом или массивом. Эти структуры могут быть вложенными.

JSON

Слайд 51

Строка — коллекция нуля или больше символов Unicode, заключенная в двойные кавычки,

используя \ (обратную косую черту) в качестве символа экранирования. Для представления числа используется только десятичная система счисления.
{
    "id": 765,
    "email": "ivanov@mail.ru",
    "name": "Иванов Иван Иванович",
    "age": 45,
    "admin": false,
    "friends": [123,456,789]
}

JSON

Слайд 52

Модуль json позволяет легко записывать и читать данные в формате JSON.
Для чтения данных

в JSON-формате есть два метода:
json.load() — метод считывает файл в формате JSON и возвращает объект Python
json.loads() — метод считывает строку в формате JSON и возвращает объект Python
Для записи информации в формате JSON также два метода:
json.dump() — метод записывает объект Python в файл в формате JSON
json.dumps() — метод преобразует объект Python в строку в формате JSON

JSON – Чтение и запись данных

Слайд 53

JSON - Таблица конвертации данных

Слайд 54

import json
string = '{"id":765, "email":"ivanov@mail.ru",  "surname":"Иванов", "age":45, "admin":false,  "friends":[123,456,789]}'
data = json.loads(string)
print(data["email"])
print(data["surname"])
print(data["admin"])
print(data["friends"])

Преобразуем json-строку в словарь

ivanov@mail.ru
Иванов
False
[123, 456, 789]

Слайд 55

import json
# читаем json-данные из файла и преобразуем в словарь
with open('data.json', encoding = 'UTF-8') as file:
    data = json.load(file)
print(data["email"])
print(data["surname"])
print(data["admin"])
print(data["friends"])

Читаем json-данные из файла и преобразуем в словарь

ivanov@mail.ru
Иванов
False
[123, 456, 789]

Слайд 56

import json
data = {"id":765, "email":"ivanov@mail.ru",  "surname":"Иванов", "age":45, "admin":False,  "friends":[123,456,789]}
# преобразуем словарь в json-строку
string = json.dumps(data)
print(string)
# преобразуем словарь в json-строку
string = json.dumps(data, ensure_ascii = False)
print(string)

Преобразуем словарь в json-строку

{"id": 765, "email": "ivanov@mail.ru", "surname": "\u0418\u0432\u0430\u043d\u043e\u0432", "age": 45, "admin": false,

"friends": [123, 456, 789]}
{"id": 765, "email": "ivanov@mail.ru", "surname": "Иванов", "age": 45, "admin": false, "friends": [123, 456, 789]}

Слайд 57

import json
data = {"id":765, "email":"ivanov@mail.ru", "surname":"Иванов", "age":45, "admin":False, "friends":[123,456,789]}
# преобразуем словарь в json и записываем в файл
with open('data.json', 'w', encoding = 'UTF-8') as file:
    json.dump(data, file)
# преобразуем словарь в json и записываем в файл
with open('data.json', 'w', encoding = 'UTF-8') as file:
    json.dump(data, file, ensure_ascii = False)

Преобразуем словарь в json и записываем в файл

Слайд 58

Преобразуем словарь в json и записываем в файл

Слайд 59

Работа с файлами Word Библиотека Python-Docx

Слайд 60

Официальный сайт библиотеки Python-Docx
https://python-docx.readthedocs.io/en/latest/

Библиотека Python-Docx

Слайд 61

Работа с файлами MS Word в Python (С помощью модуля python-docx) https://tokmakov.msk.ru/blog/item/78
Документация по

модулю python-docx https://python-docx.readthedocs.io/en/latest/
Бесшовная интеграция Microsoft Excel и Word с помощью Python https://habr.com/ru/company/skillfactory/blog/553224/
Чтение и запись файлов MS Word с помощью модуля Python-Docx https://internet--technologies-ru.turbopages.org/internet-technologies.ru/s/articles/chtenie-i-zapis-faylov-word-s-pom-python-docx.html

Работа с файлами Word

Слайд 62

Работа с файлами Excel

Слайд 63

http://www.python-excel.org/
Openpyxl - The recommended package for reading and writing Excel 2010 files

(ie: .xlsx)
Download | Documentation | Bitbucket
Xlsxwriter - An alternative package for writing data, formatting information and, in particular, charts in the Excel 2010 format (ie: .xlsx)
Download | Documentation | GitHub
Pyxlsb - This package allows you to read Excel files in the xlsb format.
Download | GitHub
Pylightxl - This package allows you to read xlsx and xlsm files and write xlsx files.
Download | Documentation | GitHub
Xlrd - This package is for reading data and formatting information from older Excel files (ie: .xls)
Download | Documentation | GitHub
Xlwt - This package is for writing data and formatting information to older Excel files (ie: .xls)
Download | Documentation | Examples | GitHub
Xlutils - This package collects utilities that require both xlrd and xlwt, including the ability to copy and modify or filter existing excel files. NB: In general, these use cases are now covered by openpyxl!
Download | Documentation | GitHub

Работа с файлами Excel

Слайд 64

Официальный сайт библиотеки openpyxl
https://openpyxl.readthedocs.io/en/stable/

Библиотека openpyxl

Слайд 65

Pandas — программная библиотека на языке Python для обработки и анализа данных https://pandas.pydata.org/


Библиотека pandas

Слайд 66

Библиотека XlsxWriter https://xlsxwriter.readthedocs.io/

Библиотека XlsxWriter

Слайд 67

Использование Python и Excel для обработки и анализа данных. Часть 1: импорт данных

и настройка среды https://habr.com/ru/company/otus/blog/331746/
Использование Python и Excel для обработки и анализа данных. Часть 2: библиотеки для работы с данными https://habr.com/ru/company/otus/blog/331998/
Python | создание и запись в файл Excel с помощью модуля XLSXWRITER http://espressocode.top/python-create-and-write-on-excel-file-using-xlsxwriter-module/
Чтение и запись файлов Excel (XLSX) на Python с помощью библиотеки Pandas https://pythobyte.com/reading-and-writing-excel-files-in-python-with-the-pandas-library-8358adce/

Работа с файлами Excel. Документация

Слайд 68

Работа с файлами PDF Библиотека

Для работы с PDF форматов существует большое количество библиотек

Слайд 69

PyPDF2 — библиотека для извлечения информации и содержимого документов, постраничного разделения документов, объединения документов,

обрезки страниц и добавления водяных знаков. PyPDF2 поддерживает как незашифрованные, так и зашифрованные документы.
https://pypi.org/project/PyPDF2/
https://pythonhosted.org/PyPDF2/
https://pythonist-ru.turbopages.org/pythonist.ru/s/sozdanie-i-izmenenie-pdf-fajlov-v-python/

PyPDF2

Слайд 70

PDFMiner — это инструмент для извлечения информации из PDF-документов. В отличие от других инструментов,

связанных с PDF, он полностью фокусируется на получении и анализе текстовых данных. PDFMiner позволяет получить точное расположение текста на странице, а также другую информацию, такую как шрифты или строки. Он включает в себя конвертер PDF, который может преобразовывать PDF-файлы в другие текстовые форматы (например, HTML). Он имеет расширяемый анализатор PDF, который может использоваться для других целей, кроме анализа текста.
Можно также использовать клонированный пакет PDFMiner.six.
Оба пакета позволяют анализировать и преобразовывать PDF‑документы. Это включает в себя поддержку PDF 1.7, а также языков CJK (китайский, японский и корейский) и различные типы шрифтов (Type1, TrueType, Type3 и CID).
https://euske.github.io/pdfminer/index.html
https://github.com/pdfminer/pdfminer.six
https://pypi.org/project/pdfminer/
https://pdfminer-docs.readthedocs.io/pdfminer_index.html
https://python-scripts.com/exporting-data-from-pdf

PDFMiner

Слайд 71

PDFQuery — позиционируется как «быстрая и удобная библиотека чистого PDF» и реализована как оболочка

для PDFMiner, lxml и pyquery. Основная идея заключается в том, чтобы «надежно извлекать данные из наборов PDF‑файлов, используя как можно меньше кода».
https://github.com/jcushman/pdfquery

PDFQuery

Слайд 72

tabula-py — простая оболочка Python для tabula-java, которая может читать таблицы из PDF‑файлов и преобразовывать

их во фреймы (DataFrames) Pandas. Позволяет конвертировать файл PDF в файлы форматов CSV/TSV/JSON.
https://github.com/chezou/tabula-py
https://tabula-py.readthedocs.io/en/latest/
https://readthedocs.org/projects/tabula-py/downloads/pdf/latest/

tabula-py

Слайд 73

pdflib — расширение библиотеки Poppler, которое позволяет анализировать и конвертировать PDF‑документы. Не следует его путать

с коммерческим клоном PDFLib с таким же именем.
https://github.com/alephdata/pdflib
https://www.pdflib.com/documentation/
https://www.pdflib.com

pdflib

Слайд 74

PyFPDF — библиотека для создания документов PDF под Python. Портировано из библиотеки FPDF (PHP), известной замены

PDFlib-расширения со множеством примеров, сценариев и производных.
https://pyfpdf.readthedocs.io/en/latest/
https://pyfpdf.readthedocs.io/en/latest/Tutorial/index.html

PyFPDF

Слайд 75

PDFTables — коммерческий сервис, предлагающий извлечение данных из таблиц документов PDF. Предлагает API, позволяющий

использовать PDFTables в качестве SAAS.
https://pdftables.com

PDFTables

Слайд 76

PyX — графический пакет Python для создания файлов PostScript, PDF и SVG. Он сочетает в

себе абстракцию модели чертежа PostScript с интерфейсом TeX/LaTeX. Сложные задачи, такие как создание 2D и 3D графиков в готовом для публикации качестве, построены из этих примитивов.
https://pyx-project.org
https://pyx-project.org/manual/index.html
https://sourceforge.net/p/pyx/gallery/index/

PyX

Слайд 77

ReportLab — амбициозная промышленная библиотека, в основном ориентированная на оздание высококачественных PDF‑документов. Доступны как

свободная версия с открытым исходным кодом, так и коммерческая, улучшенная, версия ReportLab PLUS.
https://www.reportlab.com
https://www.reportlab.com/dev/docs/
https://www.reportlab.com/dev/samples/
https://pypi.org/project/reportlab/

ReportLab

Слайд 78

PyMuPDF (он же «fitz») — привязка Python для MuPDF, который является облегченным средством просмотра PDF

и XPS. Библиотека может получать доступ к файлам в форматах PDF, XPS, OpenXPS, epub в комиксах и художественных книгах, а также известна своей высокой производительностью и высоким качеством рендеринга.
https://github.com/pymupdf/PyMuPDF
https://pypi.org/project/PyMuPDF/
https://pymupdf.readthedocs.io/en/latest/index.html
https://documentation.help/PyMuPDF/tutorial.html

PyMuPDF

Слайд 79

pdfrw — чистый анализатор PDF на основе Python для чтения и записи PDF. Он

точно воспроизводит векторные форматы без растеризации. Вместе с ReportLab он помогает повторно использовать части существующих PDF‑файлов в новых PDF‑файлах, созданных с помощью ReportLab.
https://pypi.org/project/pdfrw/
https://github.com/pmaupin/pdfrw

pdfrw

Слайд 80

КУТУЗОВ Виктор Владимирович

Благодарю
за внимание

Белорусско-Российский университет, Республика Беларусь, Могилев, 2021

Информатика. Программирование на Python
Тема:

Python. Основы. Строки.

Белорусско-Российский университет
Кафедра «Программное обеспечение информационных технологий»

Слайд 81

Python https://www.python.org/
Google Colaboratory https://colab.research.google.com/
Федоров, Д. Ю. Программирование на языке высокого уровня

Python : учеб. пособие для прикладного бакалавриата / Д. Ю. Федоров. —2-е изд., перераб. и доп. — М. : Издательство Юрайт, 2019. — 161 с. https://dfedorov.spb.ru/python3/book.pdf
Работа с файлами в Python http://pythonicway.com/python-fileio
Простой способ создать файл в python https://pythonru.com/osnovy/prostoj-sposob-sozdat-fajl-v-python
Модуль os https://pythonworld.ru/moduli/modul-os.html
Работа с файлами в Python с помощью модуля OS https://pythonru.com/osnovy/rabota-s-fajlami-v-python-s-pomoshhju-modulja-os
Как прочитать файл построчно в Python https://pythonru.com/osnovy/chtenie-iz-fajla-postrochno-v-python
Работа с файлами в формате CSV, JSON, YAML https://pyneng.readthedocs.io/ru/latest/book/17_serialization/

Список использованных источников

Слайд 82

Википедия CSV формат https://ru.wikipedia.org/wiki/CSV
Работа с CSV-файлами в Python https://tokmakov.msk.ru/blog/item/83
Работа с CSV-

и JSON-файлами в контексте решений для работы с данными https://docs.microsoft.com/ru-ru/azure/architecture/data-guide/scenarios/csv-and-json
Работа с JSON в Python https://tokmakov.msk.ru/blog/item/85
Официальный сайт библиотеки Python-Docx https://python-docx.readthedocs.io/en/latest/
Работа с файлами MS Word в Python (С помощью модуля python-docx) https://tokmakov.msk.ru/blog/item/78
Документация по модулю python-docx https://python-docx.readthedocs.io/en/latest/
Бесшовная интеграция Microsoft Excel и Word с помощью Python https://habr.com/ru/company/skillfactory/blog/553224/
Чтение и запись файлов MS Word с помощью модуля Python-Docx https://internet--technologies-ru.turbopages.org/internet-technologies.ru/s/articles/chtenie-i-zapis-faylov-word-s-pom-python-docx.html
Working with Excel Files in Python http://www.python-excel.org/

Список использованных источников

Слайд 83

Официальный сайт библиотеки openpyxl https://openpyxl.readthedocs.io/en/stable/
Библиотека XlsxWriter https://xlsxwriter.readthedocs.io/
Pandas https://pandas.pydata.org/
Создание информативных и красивых

Excel документов. XLSXWRITER И PANDAS https://newtechaudit.ru/sozdanie-informativnyh-i-krasivyh-excel-dokumentov-xlsxwriter-i-pandas/
Использование Python и Excel для обработки и анализа данных. Часть 1: импорт данных и настройка среды https://habr.com/ru/company/otus/blog/331746/
Использование Python и Excel для обработки и анализа данных. Часть 2: библиотеки для работы с данными https://habr.com/ru/company/otus/blog/331998/
Python | создание и запись в файл Excel с помощью модуля XLSXWRITER http://espressocode.top/python-create-and-write-on-excel-file-using-xlsxwriter-module/
Чтение и запись файлов Excel (XLSX) на Python с помощью библиотеки Pandas https://pythobyte.com/reading-and-writing-excel-files-in-python-with-the-pandas-library-8358adce/
Работа с PDF-файлами в Python: чтение и разбор https://dev-gang.ru/article/rabota-s-pdf-failami-v-python-cztenie-i-razbor-06mta2spn0/
Обработка PDF с помощью Python https://www.machinelearningmastery.ru/pdf-preprocessing-with-python-19829752af9f/

Список использованных источников

Слайд 84

Работа с PDF-файлами в Python (часть I): чтение и разбор https://chel-center.ru/python-yfc/2020/02/17/rabota-s-pdf-fajlami-v-python-chast-i-chtenie-i-razbor/
Работа с

PDF-файлами https://chel-center.ru/python-yfc/category/rabota-s-pdf-afjlami/
pip PyPDF2 https://pypi.org/project/PyPDF2/
PyPDF2 Documentation https://pythonhosted.org/PyPDF2/
Создание и изменение PDF-файлов в Python https://pythonist-ru.turbopages.org/pythonist.ru/s/sozdanie-i-izmenenie-pdf-fajlov-v-python/
PDFMiner https://euske.github.io/pdfminer/index.html
github PDFMiner.six https://github.com/pdfminer/pdfminer.six
pip PDFMiner https://pypi.org/project/pdfminer/
PDFMiner Docs https://pdfminer-docs.readthedocs.io/pdfminer_index.html
Экспортируем данные из PDF при помощи Python https://python-scripts.com/exporting-data-from-pdf

Список использованных источников

Слайд 85

github pdfquery https://github.com/jcushman/pdfquery
github tabula-py https://github.com/chezou/tabula-py
tabula-py Docs https://tabula-py.readthedocs.io/en/latest/
tabula-py Docs PDF https://readthedocs.org/projects/tabula-py/downloads/pdf/latest/


github pdflib https://github.com/alephdata/pdflib
pdflib https://www.pdflib.com
pdflib Docs https://www.pdflib.com/documentation/
FPDF for Python https://pyfpdf.readthedocs.io/en/latest/
FPDF Tutorial https://pyfpdf.readthedocs.io/en/latest/Tutorial/index.html
PDFTables. PDF to Excel https://pdftables.com

Список использованных источников

Слайд 86

PyX — Python graphics package https://pyx-project.org/
PyX Docs https://pyx-project.org/manual/index.html
PyX Gallery https://sourceforge.net/p/pyx/gallery/index/
ReportLab

https://www.reportlab.com
ReportLab Documentation https://www.reportlab.com/dev/docs/
ReportLab Samples https://www.reportlab.com/dev/samples/
pip ReportLab https://pypi.org/project/reportlab/
github PyMuPDF https://github.com/pymupdf/PyMuPDF
pip PyMuPDF https://pypi.org/project/PyMuPDF/
PyMuPDF Docs https://pymupdf.readthedocs.io/en/latest/index.html

Список использованных источников

Имя файла: Python.-Основы.-Работа-с-файлами.-Лекция-11.pptx
Количество просмотров: 148
Количество скачиваний: 6