1.78M
Categories: programmingprogramming softwaresoftware

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

1.

Белорусско-Российский университет
Кафедра «Программное обеспечение информационных технологий»
Информатика.
Программирование на Python
Тема: Python. Основы.
Работа с файлами
КУТУЗОВ Виктор Владимирович
Могилев, 2021

2.

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

3.

Работа с файлами в Python
• Обыкновенные текстовые файлы
• Операции с файлами
• Текстовые файлы
• Обыкновенные текстовые файлы (произвольный формат
хранения данных)
• Файлы в формате CSV (значения, разделенные запятыми)
• Файлы в формате JSON (данные представлены в виде пар
"ключ : значение" в частично структурированном формате)
• Файлы в .doc, .docx формате (Word)
• Табличные файлы
• Файлы в формате CSV
• Файлы Excel
• PDF файлы
Информатика. Программирование на Python
Тема: Python. Основы. Строки
3

4.

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

5.

Работа с файлами
Информатика. Программирование на Python
Тема: Python. Основы. Строки
5

6.

Чтение данных из файла
file = open('example_text.txt', 'r')
contents = file.read()
print(contents)
file.close()
Информатика. Программирование на Python
Тема: Python. Основы. Строки
6

7.

Список режимов доступа к файлу в Python
r
rb
r+
rb+
Открывает файл только для чтения. Указатель стоит в начале файла.
Открывает файл для чтения в двоичном формате. Указатель стоит в начале файла.
Открывает файл для чтения и записи. Указатель стоит в начале файла.
Открывает файл для чтения и записи в двоичном формате. Указатель стоит в начале файла.
Открывает файл только для записи. Указатель стоит в начале файла. Создает файл с именем
w
имя_файла, если такового не существует.
Открывает файл для записи в двоичном формате. Указатель стоит в начале файла. Создает файл с
wb
именем имя_файла, если такового не существует.
Открывает файл для чтения и записи. Указатель стоит в начале файла. Создает файл с именем
w+
имя_файла, если такового не существует.
Открывает файл для чтения и записи в двоичном формате. Указатель стоит в начале файла. Создает
wb+
файл с именем имя_файла, если такового не существует.
Открывает файл для добавления информации в файл. Указатель стоит в конце файла. Создает файл с
a
именем имя_файла, если такового не существует.
Открывает файл для добавления в двоичном формате. Указатель стоит в конце файла. Создает файл
ab
с именем имя_файла, если такового не существует.
Открывает файл для добавления и чтения. Указатель стоит в конце файла. Создает файл с именем
a+
имя_файла, если такового не существует.
Открывает файл для добавления и чтения в двоичном формате. Указатель стоит в конце файла.
ab+
Создает файл с именем имя_файла, если такового не существует.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
7

8.

Атрибуты файлового объекта в Python
Как только файл был открыт и у вас появился файловый
объект, вы можете получить следующую информацию о
нем
file.closed
file.mode
file.name
file.softspace
Информатика. Программирование на Python
Тема: Python. Основы. Строки
Возвращает True если файл был закрыт.
Возвращает режим доступа, с которым был
открыт файл.
Возвращает имя файла.
Возвращает False если при выводе содержимого
файла следует отдельно добавлять пробел
8

9.

Свойства существующего файла
my_file = open("some.txt", "w")
print("Имя файла: ", my_file.name)
print("Файл закрыт: ", my_file.closed)
print("В каком режиме файл открыт: ",
my_file.mode)
print("Пробелы: ", my_file.softspace)
Информатика. Программирование на Python
Тема: Python. Основы. Строки
9

10.

Создание текстового файла
my_file = open("myFile.txt", "w+")
my_file.write("Привет, файл! ")
my_file.close()
В начале объявляется переменная my_file. После этого используются встроенные
функции open и write для открытия и записи в файл. "w+" сообщает, что запись будет
осуществляться в новый файл. Если он существует, то новое содержимое нужно
записать поверх уже существующего. Если же вместо этого использовать параметр
"w", тогда файл будет создан только в том случае, если он не существовал до этого.
Важно заметить, что в конце файл всегда нужно закрывать, чтобы изменения
сохранились.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
10

11.

Добавление информации в файл
my_file = open("myFile.txt", "a+")
my_file.write("Добавляем новый текст")
my_file.close()
• Если нужно добавить новые данные в файл, тогда
вместо "w+" нужно просто использовать параметр
"a+".
• Однако в таком случае не будет добавлена новая
строка, поэтому важно не забыть использовать
символ \n.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
11

12.

Чтение данных из созданного нами файла
my_file = open("myFile.txt", "a+")
file_contents == my_file.read()
print(file_contents)
Привет, файл! Добавляем новый текст
Информатика. Программирование на Python
Тема: Python. Основы. Строки
12

13.

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

14.

Чтение файла
• Существует много способов чтение из файла построчно
в Python.
• Можно считать строки в список или обращаться к
каждой из строк в цикле при помощи итератора или
вызова функции объекта file.
• Мы будем считывать файл построчно, используя
функции readline(), readlines() и объект
файла на примерах различных программ.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
14

15.

Чтение файла построчно функцией readline()
1. Открываем файл в режиме чтения. При этом возвращается
дескриптор файла.
1. Создаём бесконечный цикл while.
2. В каждой итерации считываем строку файла при
помощи readline().
2. Если строка не пустая, то выводим её и переходим к
следующей. Вы можете проверить это, используя
конструкцию if not. В противном случае файл больше не
имеет строк и мы останавливаем цикл с помощью break.
3. К моменту выхода из цикла мы считаем все строки файла в
итерациях одну за другой.
4. После этого мы закрываем файл, используя функцию
close.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
15

16.

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

17.

Чтение строк как список функцией readlines()
• Функция readlines() возвращает все строки файла
в виде списка.
• Пройдясь по списку и получить доступ к каждой строке.
• Вначале мы должны открыть текстовый файл и
получить список всех его строк, используя функцию
readlines().
• После этого используя цикл for, чтобы обходим
данный список.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
17

18.

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

19.

Считываем файл построчно из объекта File
• В предыдущем примере, мы считываем каждую строку
файла при помощи бесконечного цикла while и
функции readline().
• Но можно использовать цикл for для файлового
объекта, чтобы в каждой итерации цикла получать
строку, пока не будет достигнут конец файла.
# получим объект файла
with open("sample.txt", "r") as file1:
# итерация по строкам
for line in file1:
print(line.strip())
Информатика. Программирование на Python
Тема: Python. Основы. Строки
19

20.

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

21.

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

22.

Вывод текущей директории
Для получения текущего рабочего каталога
используется os.getcwd():
import os
# вывести текущую директорию
print("Текущая деректория:", os.getcwd())
os.getcwd() возвращает строку в Юникоде,
представляющую текущий рабочий каталог. Вот пример
вывода: Текущая директория: C:\python3\bin
Информатика. Программирование на Python
Тема: Python. Основы. Строки
22

23.

Создание папки
• Для создания папки/каталога в любой операционной
системе нужна следующая команда:
# создать пустой каталог (папку)
os.mkdir("folder")
• После ее выполнения в текущем рабочем каталоге тут
же появится новая папка с названием «folder».
Информатика. Программирование на Python
Тема: Python. Основы. Строки
23

24.

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

25.

Изменение директории
• Менять директории довольно просто. Проделаем это с
только что созданным:
# изменение текущего каталога на 'folder'
os.chdir("folder")
• Еще раз выведем рабочий каталог:
# вывод текущей папки
print("Текущая директория изменилась на folder:",
os.getcwd())
• Вывод:
• Текущая директория изменилась на folder:
C:\python3\bin\folder
Информатика. Программирование на Python
Тема: Python. Основы. Строки
25

26.

Создание вложенных папок
• Предположим, вы хотите создать не только одну папку,
но и несколько вложенных:
# вернуться в предыдущую директорию
os.chdir("..")
# сделать несколько вложенных папок
os.makedirs("nested1/nested2/nested3")
• Это создаст три папки рекурсивно, как показано на
следующем изображении:
Информатика. Программирование на Python
Тема: Python. Основы. Строки
26

27.

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

28.

Переименование файлов
• С помощью модуля os достаточно просто
переименовать файл. Поменяем название созданного
в прошлом шаге.
# переименовать text.txt на renamed-text.txt
os.rename("text.txt", "renamed-text.txt")
• Функция os.rename() принимает 2 аргумента: имя
файла или папки, которые нужно переименовать и
новое имя.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
28

29.

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

30.

Список файлов и директорий
# распечатать все файлы и папки в текущем
каталоге
print("Все папки и файлы:", os.listdir())
• Функция os.listdir() возвращает список,
который содержит имена файлов в папке. Если в
качестве аргумента не указывать ничего, вернется
список файлов и папок текущего рабочего каталога:
• Все папки и файлы: ['folder', 'handling-files', 'nested1',
'text.txt']
Информатика. Программирование на Python
Тема: Python. Основы. Строки
30

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() был использован для объединения
текущего пути с именем файла/папки.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
31

32.

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

33.

Модуль os
• 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() - текущая рабочая директория.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
33

34.

Модуль os
• 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,
создавая промежуточные директории.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
34

35.

Модуль os
• 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).
Информатика. Программирование на Python
Тема: Python. Основы. Строки
35

36.

Модуль os
• os.walk(top, topdown=True, onerror=None,
followlinks=False) - генерация имён файлов в дереве
каталогов, сверху вниз (если topdown равен True), либо
снизу вверх (если False). Для каждого каталога функция
walk возвращает кортеж (путь к каталогу, список
каталогов, список файлов).
• os.urandom(n) - n случайных байт. Возможно
использование этой функции в криптографических
целях.
• os.path - модуль, реализующий некоторые
полезные функции на работы с путями.
• и многие другие функции
Информатика. Программирование на Python
Тема: Python. Основы. Строки
36

37.

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

38.

Формат CSV, JSON
• CSV (от англ. Comma-Separated Values — значения,
разделённые запятыми) — текстовый формат,
предназначенный для представления табличных данных.
Строка таблицы соответствует строке текста, которая
содержит одно или несколько полей, разделенных
запятыми.
• JSON (JavaScript Object Notation) — текстовый формат
обмена данными, удобный для чтения и написания как
человеком, так и компьютером. Он основан на
подмножестве языка программирования JavaScript.
• CSV и JSON — вероятно, наиболее распространенные
форматы, используемые для приема, хранения
неструктурированных или частично структурированных
данных и обмена ими.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
38

39.

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

40.

CSV
• CSV — текстовой формат, ориентированный на работу с
данными несложных электронных таблиц, хранящихся
в обычных тестовых файлах.
• Модуль csv упрощает синтаксический анализ (парсинг)
CSV-файлов.
• Подключение
import csv
Информатика. Программирование на Python
Тема: Python. Основы. Строки
40

41.

Чтение CSV-файлов
• Файл example.csv, из которого будем читать:
05.04.2015 13:34;Яблоки;73
05.04.2015 3:41;Вишни;85
06.04.2015 12:46;Груши;14
Информатика. Программирование на Python
Тема: Python. Основы. Строки
41

42.

Чтение данных из файла CSV
• Чтобы прочитать данные из CSV-файла, необходимо
создать объект Reader, который обеспечивает
возможность итерирования по строкам файла:
import csv
exampleFile = open('example.csv', encoding = 'UTF-8')
exampleReader = csv.reader(exampleFile, delimiter = ';')
exampleData = list(exampleReader)
print(exampleData)
exampleFile.close()
Информатика. Программирование на Python
Тема: Python. Основы. Строки
[['05.04.2015 13:34', 'Яблоки', '73'],
['05.04.2015 3:41', 'Вишни', '85'],
['06.04.2015 12:46', 'Груши', '14']]
42

43.

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

44.

CSV
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()
Строка #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().
Информатика. Программирование на Python
Тема: Python. Основы. Строки
44

45.

Запись CSV-файлов
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()
Файл output.csv:
05.04.2015 13:34;Яблоки;73
05.04.2015 3:41;Вишни;85
06.04.2015 12:46;Груши;14
При работе в Windows функции open() надо передать именованный аргумент newline = '', иначе
в файле output.csv появятся лишние пустые строки. С помощью именованного аргумента
lineterminator метода csv.writer() можно заменить разделитель строк.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
45

46.

JSON
(JavaScript Object Notation)
46

47.

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

48.

JSON в сравнении с CSV-файлами
• Файлы в формате JSON имеют несколько
преимуществ по сравнению с CSV-файлами.
• JSON поддерживает иерархические структуры, упрощая
хранение связанных данных в одном документе и
представление сложных связей.
• Большинство языков предоставляют упрощенные
библиотеки сериализации JSON или встроенную поддержку
десериализации JSON в объекты.
• JSON поддерживает списки объектов, помогая избежать
беспорядочных преобразований списков в реляционную
модель данных.
• JSON — это широко используемый формат файлов для баз
данных NoSQL, таких как MongoDB, Couchbase и Azure
Cosmos DB.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
48

49.

JSON
• В нотации JSON это выглядит так:
• Объект — неупорядоченный набор пар ключзначение. Объект начинается с { и заканчивается }.
Ключ и значение разделяются двоеточием, сами пары
ключ-значение разделяются запятой.
{"email" : "[email protected]",
"name" : "Иванов Иван Иванович"}
Информатика. Программирование на Python
Тема: Python. Основы. Строки
49

50.

JSON
• Массив — упорядоченная коллекция значений.
• Массив начинается с [ и заканчивается ].
Значения разделены запятой.
["[email protected]", "[email protected]",
"[email protected]"]
• Значение может быть строкой в двойных кавычках,
числом, true, false, null, объектом или массивом.
Эти структуры могут быть вложенными.
Информатика. Программирование на Python
Тема: Python. Основы. Строки
50

51.

JSON
• Строка — коллекция нуля или больше символов Unicode,
заключенная в двойные кавычки, используя \ (обратную
косую черту) в качестве символа экранирования. Для
представления числа используется только десятичная
система счисления.
{
"id": 765,
"email": "[email protected]",
"name": "Иванов Иван Иванович",
"age": 45,
"admin": false,
"friends": [123,456,789]
}
Информатика. Программирование на Python
Тема: Python. Основы. Строки
51

52.

JSON – Чтение и запись данных
• Модуль json позволяет легко записывать и читать
данные в формате JSON.
• Для чтения данных в JSON-формате есть два метода:
• json.load() — метод считывает файл в формате JSON и
возвращает объект Python
• json.loads() — метод считывает строку в формате JSON и
возвращает объект Python
• Для записи информации в формате JSON также два метода:
• json.dump() — метод записывает объект Python в файл в
формате JSON
• json.dumps() — метод преобразует объект Python в строку в
формате JSON
Информатика. Программирование на Python
Тема: Python. Основы. Строки
52

53.

JSON - Таблица конвертации данных
Таблица конвертации данных
Python в JSON
Python
JSON
Таблица конвертации JSON в
данные Python
JSON
Python
dict
list, tuple
str
object
array
string
object
array
string
dict
list
str
int, float
True, False
number(int, real)
true, false
number(int, real)
true, false
int, float
True, False
None
null
null
None
Информатика. Программирование на Python
Тема: Python. Основы. Строки
53

54.

Преобразуем json-строку в словарь
import json
string = '{"id":765, "email":"[email protected]",
"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"])
Информатика. Программирование на Python
Тема: Python. Основы. Строки
[email protected]
Иванов
False
[123, 456, 789]
54

55.

Читаем json-данные из файла
и преобразуем в словарь
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"])
[email protected]
Иванов
False
[123, 456, 789]
Информатика. Программирование на Python
Тема: Python. Основы. Строки
55

56.

Преобразуем словарь в json-строку
import json
data = {"id":765, "email":"[email protected]",
"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)
{"id": 765, "email": "[email protected]", "surname": "\u0418\u0432\u0430\u043d\u043e\u0432", "age": 45, "admin": false,
"friends": [123, 456, 789]}
{"id": 765, "email": "[email protected]", "surname": "Иванов", "age": 45, "admin": false, "friends": [123, 456, 789]}
Информатика. Программирование на Python
Тема: Python. Основы. Строки
56

57.

Преобразуем словарь в json и записываем в
файл
import json
data = {"id":765, "email":"[email protected]", "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)
Информатика. Программирование на Python
Тема: Python. Основы. Строки
57

58.

Преобразуем словарь в json и записываем в
файл
Информатика. Программирование на Python
Тема: Python. Основы. Строки
58

59.

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

60.

Библиотека Python-Docx
• Официальный сайт библиотеки Python-Docx
• https://python-docx.readthedocs.io/en/latest/
Информатика. Программирование на Python
Тема: Python. Основы. Строки
60

61.

Работа с файлами Word
• Работа с файлами 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--technologiesru.turbopages.org/internettechnologies.ru/s/articles/chtenie-i-zapis-faylov-word-spom-python-docx.html
Информатика. Программирование на Python
Тема: Python. Основы. Строки
61

62.

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

63.

Работа с файлами Excel
• 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
Информатика. Программирование на Python
Тема: Python. Основы. Строки
63

64.

Библиотека openpyxl
• Официальный сайт библиотеки openpyxl
• https://openpyxl.readthedocs.io/en/stable/
Информатика. Программирование на Python
Тема: Python. Основы. Строки
64

65.

Библиотека pandas
• Pandas — программная библиотека на языке Python для
обработки и анализа данных https://pandas.pydata.org/
Информатика. Программирование на Python
Тема: Python. Основы. Строки
65

66.

Библиотека XlsxWriter
• Библиотека XlsxWriter https://xlsxwriter.readthedocs.io/
Информатика. Программирование на Python
Тема: Python. Основы. Строки
66

67.

Работа с файлами Excel. Документация
• Использование 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/pythoncreate-and-write-on-excel-file-using-xlsxwriter-module/
• Чтение и запись файлов Excel (XLSX) на Python с
помощью библиотеки Pandas
https://pythobyte.com/reading-and-writing-excel-files-inpython-with-the-pandas-library-8358adce/
Информатика. Программирование на Python
Тема: Python. Основы. Строки
67

68.

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

69.

PyPDF2
• PyPDF2 — библиотека для извлечения информации и
содержимого документов, постраничного разделения
документов, объединения документов, обрезки
страниц и добавления водяных знаков. PyPDF2
поддерживает как незашифрованные, так и
зашифрованные документы.
• https://pypi.org/project/PyPDF2/
• https://pythonhosted.org/PyPDF2/
• https://pythonistru.turbopages.org/pythonist.ru/s/sozdanie-i-izmeneniepdf-fajlov-v-python/
Информатика. Программирование на Python
Тема: Python. Основы. Строки
69

70.

PDFMiner
• 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
Информатика. Программирование на Python
Тема: Python. Основы. Строки
70

71.

PDFQuery
• PDFQuery — позиционируется как «быстрая и удобная
библиотека чистого PDF» и реализована как оболочка
для PDFMiner, lxml и pyquery. Основная идея
заключается в том, чтобы «надежно извлекать данные
из наборов PDF-файлов, используя как можно меньше
кода».
• https://github.com/jcushman/pdfquery
Информатика. Программирование на Python
Тема: Python. Основы. Строки
71

72.

tabula-py
• 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/tabulapy/downloads/pdf/latest/
Информатика. Программирование на Python
Тема: Python. Основы. Строки
72

73.

pdflib
• pdflib — расширение библиотеки Poppler, которое
позволяет анализировать и конвертировать
PDF-документы. Не следует его путать с коммерческим
клоном PDFLib с таким же именем.
• https://github.com/alephdata/pdflib
• https://www.pdflib.com/documentation/
• https://www.pdflib.com
Информатика. Программирование на Python
Тема: Python. Основы. Строки
73

74.

PyFPDF
• PyFPDF — библиотека для создания документов PDF
под Python. Портировано из библиотеки FPDF (PHP),
известной замены PDFlib-расширения со множеством
примеров, сценариев и производных.
• https://pyfpdf.readthedocs.io/en/latest/
• https://pyfpdf.readthedocs.io/en/latest/Tutorial/index.html
Информатика. Программирование на Python
Тема: Python. Основы. Строки
74

75.

PDFTables
• PDFTables — коммерческий сервис, предлагающий
извлечение данных из таблиц документов PDF.
Предлагает API, позволяющий использовать PDFTables
в качестве SAAS.
• https://pdftables.com
Информатика. Программирование на Python
Тема: Python. Основы. Строки
75

76.

PyX
• 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/
Информатика. Программирование на Python
Тема: Python. Основы. Строки
76

77.

ReportLab
• 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/
Информатика. Программирование на Python
Тема: Python. Основы. Строки
77

78.

PyMuPDF
• 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
Информатика. Программирование на Python
Тема: Python. Основы. Строки
78

79.

pdfrw
• pdfrw — чистый анализатор PDF на основе Python для
чтения и записи PDF. Он точно воспроизводит
векторные форматы без растеризации. Вместе с
ReportLab он помогает повторно использовать части
существующих PDF-файлов в новых PDF-файлах,
созданных с помощью ReportLab.
• https://pypi.org/project/pdfrw/
• https://github.com/pmaupin/pdfrw
Информатика. Программирование на Python
Тема: Python. Основы. Строки
79

80.

Белорусско-Российский университет
Кафедра «Программное обеспечение информационных технологий»
Информатика. Программирование на Python
Тема: Python. Основы. Строки.
Благодарю
за внимание
КУТУЗОВ Виктор Владимирович
Белорусско-Российский университет, Республика Беларусь, Могилев, 2021
80

81.

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

82.

Список использованных источников
10. Википедия CSV формат https://ru.wikipedia.org/wiki/CSV
11. Работа с CSV-файлами в Python
https://tokmakov.msk.ru/blog/item/83
12. Работа с CSV- и JSON-файлами в контексте решений для работы с данными
https://docs.microsoft.com/ru-ru/azure/architecture/data-guide/scenarios/csv-and-json
13. Работа с JSON в Python
https://tokmakov.msk.ru/blog/item/85
14. Официальный сайт библиотеки Python-Docx
https://python-docx.readthedocs.io/en/latest/
15. Работа с файлами MS Word в Python (С помощью модуля python-docx)
https://tokmakov.msk.ru/blog/item/78
16. Документация по модулю python-docx
https://python-docx.readthedocs.io/en/latest/
17. Бесшовная интеграция Microsoft Excel и Word с помощью Python
https://habr.com/ru/company/skillfactory/blog/553224/
18. Чтение и запись файлов MS Word с помощью модуля Python-Docx
https://internet--technologies-ru.turbopages.org/internet-technologies.ru/s/articles/chtenie-i-zapis-faylovword-s-pom-python-docx.html
19. Working with Excel Files in Python http://www.python-excel.org/
Информатика. Программирование на Python
Тема: Python. Основы. Строки
82

83.

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

84.

Список использованных источников
30. Работа с PDF-файлами в Python (часть I): чтение и разбор
https://chel-center.ru/python-yfc/2020/02/17/rabota-s-pdf-fajlami-v-python-chast-i-chtenie-i-razbor/
31. Работа с PDF-файлами
https://chel-center.ru/python-yfc/category/rabota-s-pdf-afjlami/
32. pip PyPDF2
https://pypi.org/project/PyPDF2/
33. PyPDF2 Documentation
https://pythonhosted.org/PyPDF2/
34. Создание и изменение PDF-файлов в Python
https://pythonist-ru.turbopages.org/pythonist.ru/s/sozdanie-i-izmenenie-pdf-fajlov-v-python/
35. PDFMiner
https://euske.github.io/pdfminer/index.html
36. github PDFMiner.six
https://github.com/pdfminer/pdfminer.six
37. pip PDFMiner
https://pypi.org/project/pdfminer/
38. PDFMiner Docs https://pdfminer-docs.readthedocs.io/pdfminer_index.html
39. Экспортируем данные из PDF при помощи Python
https://python-scripts.com/exporting-data-from-pdf
Информатика. Программирование на Python
Тема: Python. Основы. Строки
84

85.

Список использованных источников
30. github pdfquery
https://github.com/jcushman/pdfquery
31. github tabula-py
https://github.com/chezou/tabula-py
32. tabula-py Docs
https://tabula-py.readthedocs.io/en/latest/
33. tabula-py Docs PDF
https://readthedocs.org/projects/tabula-py/downloads/pdf/latest/
34. github pdflib
https://github.com/alephdata/pdflib
35. pdflib
https://www.pdflib.com
36. pdflib Docs
https://www.pdflib.com/documentation/
37. FPDF for Python
https://pyfpdf.readthedocs.io/en/latest/
38. FPDF Tutorial
https://pyfpdf.readthedocs.io/en/latest/Tutorial/index.html
39. PDFTables. PDF to Excel https://pdftables.com
Информатика. Программирование на Python
Тема: Python. Основы. Строки
85

86.

Список использованных источников
30. PyX — Python graphics package
https://pyx-project.org/
31. PyX Docs
https://pyx-project.org/manual/index.html
32. PyX Gallery
https://sourceforge.net/p/pyx/gallery/index/
33. ReportLab
https://www.reportlab.com
34. ReportLab Documentation
https://www.reportlab.com/dev/docs/
35. ReportLab Samples
https://www.reportlab.com/dev/samples/
36. pip ReportLab
https://pypi.org/project/reportlab/
37. github PyMuPDF
https://github.com/pymupdf/PyMuPDF
38. pip PyMuPDF
https://pypi.org/project/PyMuPDF/
39. PyMuPDF Docs https://pymupdf.readthedocs.io/en/latest/index.html
Информатика. Программирование на Python
Тема: Python. Основы. Строки
86

87.

Список использованных источников
40. PyMuPDF Docs
https://documentation.help/PyMuPDF/tutorial.html
41. pip pdfrw
https://pypi.org/project/pdfrw/
42. github pdfrw
https://github.com/pmaupin/pdfrw
Информатика. Программирование на Python
Тема: Python. Основы. Строки
87
English     Русский Rules