Основы питон. #инструкция объявляющая переменную var и присваивающая ей значение равное 5
Скачать 92.15 Kb.
|
Работа с файламиPython позволяет работать с файлами. В качестве примера будем работать с текстовым файлом. Прежде чем начать работать с файлом необходимо его открыть, для этого есть метод open(): f = open('test.txt', 'r') Мы присваиваем переменной f результат выполнения команды открытия файла, параметры этой команды - адрес файла, путь до места, где он расположен на компьютере с названием файла(test) и его расширением(.txt), говорящим что он текстовый. Второй параметр 'r' означает, что файл открыт для чтения, то есть мы не сможем вносить изменения в этот файл до тех пор, пока он открыт только для чтения. У метода open() существует много аргументов: 'r' - открытие на чтение (значение по умолчанию) 'w' - открытие на запись, содержимое файла удаляется и перезаписывается заново, если файла не существует, создается новый 'x' - открытие на запись, только если файла не существует 'a' - открытие на дозапись, информация добавляется в конец файла 'b' - открытие файла в двоичном виде 't' - открытие в текстовом режиме (значение по умолчанию) '+' - открытие на чтение и запись Возможно сочетание режимов, например 'rb', чтение в бинарном виде, по умолчанию установлен 'rt'. После открытия файла можно прочитать из него информацию, благодаря методу read(): >>> f = open('test.txt') >>> f.read() 'Python is\nAwesome!.\n\n' Также можно прочитать и вывести файл построчно: >>> f = open('test.txt') >>> for line in f: print(line) 'Python is\n' '\n' 'Awesome\n' '\n' Записать информацию в файл можно открыв файл на запись: >>> f = open('test.txt', 'w') >>> for i in range(1, 4): f.write(i + '\n') 1 2 3 По окончании работы с файлом его необходимо закрыть, используя метод close(): >>> f.close() Подключение модулейМодулем в Python называется любой файл с программой с расширением .py. То есть любой ваш код, заключенный в файл, является модулем. Когда разрабатывается любая программа, она редко ограничивается одним файлом. Обычно это набор файлов. Для того, чтобы не писать один и тот же код в каждом файле, к каждому файлу можно подключить другой файл. Подключив другой файл (модуль), из него можно достать полезный метод, который может понадобиться. Давайте в качестве примера подключим стандартный модуль datetime, чтобы достать оттуда метод datetime.today(): >>> import datetime >>> print(datetime.datetime.today()) 2020-08-13 12:34:49.444292 Подключив стандартный модуль, мы достали метод получения текущей даты и времени, после чего вызвали его и получили вывод на экран. На языке Python очень много дополнительных библиотек, которые можно доустановить и затем вызвать необходимые методы для улучшения работоспособности своего кода, а зачастую и раскрывая новые возможности. Прежде чем начать работать с новой для себя библиотекой, стоит ознакомиться с ее методами, чтобы эффективно использовать в своей работе. Также можно использовать псевдонимы для модулей, чтобы сократить их названия: >>> import datetime as m >>> print(m.datetime.today()) 2020-08-13 12:34:49.444292 Можно сделать подключение модуля еще удобнее использовав инструкцию from: >>> from datetime import datetime as m >>> print(m.today()) 2020-08-13 12:34:49.444292 Также мы можем достать все методы сразу, использовав символ *: >>> from datetime import * Регулярные выраженияВ качестве дополнительного материала мы расскажем про регулярные выражения, с которыми рано или поздно вы можете столкнуться. Регулярные выражения - выражения для поиска и замены части текста в строке или файле. Для работы с ними необходимо подключить модуль "re" из стандартной библиотеки Python. Наиболее часто регулярные выражения используются для поиска в строке, разбиении строк, замены части строк. Вот некоторые методы для работы с регулярными выражениями: re.match(шаблон, строка) - ищет заданный шаблон с самого начала строки. >>> import re >>> print(re.match(r'Hey', 'Hey Hey')) >>> print(re.match(r'Hey', 'hey Hey')) None # Данные не нашлись, т.к. строка отличается от шаблона с первого символа # Обратите внимание на синтаксис, перед шаблоном ставится латинская буква r re.search(шаблон, строка) - ищет заданный шаблон по всей строке, возвращает результат при первом совпадении. >>> import re >>> print(re.search(r'Hey', 'hey Hey').group(0)) # Добавляем метод group(), чтобы вывести содержимое поиска Hey re.findall(шаблон, строка) - ищет заданный шаблон и возвращает все совпадения в виде списка. >>> import re >>> print(re.findall(r'Hey', 'hey Hey Hey Hey')) ['Hey', 'Hey', 'Hey'] re.split(шаблон, строка) - разделяет строку по заданному шаблону >>> import re >>> print(re.split(r'y', 'hey Hey Hey Hey')) ['he', ' He', ' He', ' He', ''] re.sub(шаблон, замена, строка) - находит шаблон в строке и производит замену >>> import re >>> print(re.sub(r'Hey', '?', 'hey Hey Hey Hey')) hey ? ? ? re.compile(шаблон) - позволяет собирать регулярное выражение в отдельный объект для последующего использования >>> ex_str = re.compile('Hey') >>> result = ex_str.findall('hey Hey Hey') >>> print result ['Hey', 'Hey'] >>> result2 = ex_str.findall('Hey') >>> print result2 ['Hey'] Перейдем к самой интересной части - представьте, что вам необходимо произвести чтение "грязного" файла и убрать из него все лишнее, но при этом вы не можете сказать точно, что необходимо убрать. Эту задачу можно решить, используя специальные символы:
Давайте напишем программу, которая найдет все ip адреса таких неавторизованных юзеров: import re logfile = open('logfile.txt', 'r') for string in logfile: if re.findall(r'Did', string): print(re.findall(r'\d+\.\d+\.\d+\.\d+', string)) Мы построчно читаем файл и ищем строки, в которых есть сочетание 'Did'. В каждой такой строке мы находим ip адрес. Он состоит из 4 наборов цифр, разделенных точками между собой. Контрольные вопросыКак объявляются переменные? Какую роль играют отступы в написании программы? Какие основные типы данных существуют в Python? Какие типы операторов существуют в Python? Для чего нужен оператор elif? Какие способы объявить цикл существуют в Python? Какие численные типы данных есть в Python? Назовите основные операции, которые можно исполнять со строками Что такое списки? Что такое кортежи? Что такое словари? Чем множества отличаются от списков? Какие типы функций существуют в Python? Какие аргументы существуют для метода open()? Для чего нужно подключать модули к проекту? |