Python. урок 12. ввод-вывод данных. работа с файлами
Содержание:
- Указание разделителя¶
- Чтение и запись файлов
- ? Познакомьтесь с контекстными менеджерами
- Работа с файлами
- Использование и особенности библиотеки pandas
- Открытие файла Python
- Решение задачи
- Списки, кортежи, множества и словари
- Добавление изображений
- The open Function
- Выявление ошибок
- Связь с другими языками
- Генерация кроссплатформенных путей в Pathlib
- Чтение из файла Python
- Установка и подготовка среды
- Синтаксис YAML¶
- Шаг 3 — Чтение файла
- The write() Method
- Основы
Указание разделителя¶
Иногда в качестве разделителя используются другие значения. В таком
случае должна быть возможность подсказать модулю, какой именно
разделитель использовать.
Например, если в файле используется разделитель (файл
sw_data2.csv):
hostname;vendor;model;location sw1;Cisco;3750;London sw2;Cisco;3850;Liverpool sw3;Cisco;3650;Liverpool sw4;Cisco;3650;London
Достаточно просто указать, какой разделитель используется в reader (файл
csv_read_delimiter.py):
import csv with open('sw_data2.csv') as f reader = csv.reader(f, delimiter=';') for row in reader print(row)
Чтение и запись файлов
Python предлагает различные методы для чтения и записи файлов, где каждая функция ведет себя по-разному. Следует отметить один важный момент – режим работы с файлами. Чтобы прочитать файл, вам нужно открыть файл в режиме чтения или записи. В то время, как для записи в файл на Python вам нужно, чтобы файл был открыт в режиме записи.
Вот некоторые функции Python, которые позволяют читать и записывать файлы:
- read() – эта функция читает весь файл и возвращает строку;
- readline() – эта функция считывает строки из этого файла и возвращает их в виде строки. Он выбирает строку n, если она вызывается n-й раз.
- readlines() – эта функция возвращает список, в котором каждый элемент представляет собой одну строку этого файла.
- readlines() – эта функция возвращает список, в котором каждый элемент представляет собой одну строку этого файла.
- write() – эта функция записывает фиксированную последовательность символов в файл.
- Writelines() – эта функция записывает список строк.
- append() – эта функция добавляет строку в файл вместо перезаписи файла.
Возьмем пример файла «abc.txt» и прочитаем отдельные строки из файла с помощью цикла for:
#open the file text_file = open('/Users/pankaj/abc.txt','r') #get the list of line line_list = text_file.readlines(); #for each line from the list, print the line for line in line_list: print(line) text_file.close() #don't forget to close the file
Вывод:
Теперь, когда мы знаем, как читать файл в Python, давайте продвинемся вперед и выполним здесь операцию записи с помощью функции Writelines().
#open the file text_file = open('/Users/pankaj/file.txt','w') #initialize an empty list word_list= [] #iterate 4 times for i in range (1, 5): print("Please enter data: ") line = input() #take input word_list.append(line) #append to the list text_file.writelines(word_list) #write 4 words to the file text_file.close() #don’t forget to close the file
Вывод
? Познакомьтесь с контекстными менеджерами
Контекстные менеджеры – это конструкции Python, которые сделают вашу жизнь намного проще. Используя их, вам не нужно помнить, чтобы закрыть файл в конце своей программы, и у вас есть доступ к файлу в конкретной части программы, которую вы выбираете.
Синтаксис
Это пример контекстно-менеджера, используемого для работы с файлами:
Совет: Тело контекстно-менеджера должно быть отступлением, так же, как мы отступаем к циклам, функциям и классам. Если код не с отступом, он не будет считаться частью контекстно-менеджера.
Когда тело контекстно-менеджера было завершено, файл закрывается автоматически.
with open("", "") as : # Working with the file... # The file is closed here!
Пример
Вот пример:
with open("data/names.txt", "r+") as f: print(f.readlines())
Этот менеджер контекста открывает Файл для операций по чтению/записи и присваивает этот объект файла к переменной Отказ Эта переменная используется в корпусе контекстно-менеджера для ссылки на объект файла.
Пытаясь прочитать это снова
После того, как тело было завершено, файл автоматически закрывается, поэтому его нельзя прочитать, не открывая его снова. Но ждать! У нас есть линия, которая пытается прочитать его снова, прямо здесь ниже:
with open("data/names.txt", "r+") as f: print(f.readlines()) print(f.readlines()) # Trying to read the file again, outside of the context manager
Давай посмотрим что происходит:
Traceback (most recent call last): File "", line 21, in print(f.readlines()) ValueError: I/O operation on closed file.
Эта ошибка брошена, потому что мы пытаемся прочитать закрытый файл. Потрясающе, верно? Контекстный менеджер делает всю тяжелую работу для нас, он читается и лаконично.
Работа с файлами
После закрытия программы или по окончании работы скрипта все данные, которые мы получили, исчезают. Иногда, впрочем, нам нужно, чтобы они куда-то сохранились. Python предоставляет возможности для работы с файлами, как для их чтения, так и записи.
Попробуем сгенерировать 10 случайных целых чисел от 1 до 100 и записать их в текстовый файл «random.txt», а затем выведем их на печать в консоль из этого документа.
Нам понадобится контекстный менеджер with и функция open, а также знакомая функция print, которая умеет заносить данные в файл.
Познакомимся с двумя режимами работы open: «r» — чтение, «w» – запись.
Итак, контекстный менеджер with автоматически закрывает файл после своей работы (чтобы он не оставался в памяти).
В функцию open хорошей практикой считается не только передача названия файла и режима работы, но и кодировки (чтобы при записи букв российского алфавита, например, мы не получили кракозябры).
Функция print может принимать дополнительный аргумент file, в котором указывается файл на запись.
Использование и особенности библиотеки pandas
- Изменение наборов данных.
- Манипулирование данными с индексацией с использованием объектов DataFrame.
- Фильтрация данных.
- Операция слияния и присоединения к наборам данных.
- Нарезка, индексирование и подмножество массивных наборов данных.
- Отсутствует обработка и согласование данных.
- Вставка и удаление строки или столбца.
- Одномерные разные форматы файлов.
- Инструменты для чтения и записи данных в различных форматах файлов.
Для работы с CSV файлом необходимо установить pandas. Это сделать довольно просто, следуйте инструкциям ниже, чтобы установить его с помощью PIP.
$ pip install pandas
После завершения установки все готово.
Открытие файла Python
Не знаете как открыть файл в питоне? В Python есть встроенная функция open(), предназначенная для открытия файла. Она возвращает объект, который используется для чтения или изменения файла.
>>> f = open("test.txt") # открыть файл в текущей папке >>> f = open("C:/Python33/README.txt") # указание полного пути
При этом можно указать необходимый режим открытия файла: ‘r’- для чтения,’w’ — для записи,’a’ — для изменения. Мы также можем указать, хотим ли открыть файл в текстовом или в бинарном формате.
По умолчанию файл открывается для чтения в текстовом режиме. При чтении файла в этом режиме мы получаем строки.
В бинарном формате мы получим байты. Этот режим используется для чтения не текстовых файлов, таких как изображения или exe-файлы.
Открытие файла Python- возможные режимы | |
Режим | Описание |
‘r’ | Открытие файла для чтения. Режим используется по умолчанию. |
‘w’ | Открытие файла для записи. Режим создаёт новый файл, если он не существует, или стирает содержимое существующего. |
‘x’ | Открытие файла для записи. Если файл существует, операция заканчивается неудачей (исключением). |
‘a’ | Открытие файла для добавления данных в конец файла без очистки его содержимого. Этот режим создаёт новый файл, если он не существует. |
‘t’ | Открытие файла в текстовом формате. Этот режим используется по умолчанию. |
‘b’ | Открытие файла в бинарном формате. |
‘+’ | Открытие файла для обновления (чтения и записи). |
f = open("test.txt") # эквивалент 'r' или 'rt' f = open("test.txt",'w') # запись в текстовом режиме f = open("img.bmp",'r+b') # чтение и запись в бинарном формате
В отличие от других языков программирования, в Python символ ‘a’ не подразумевает число 97, если оно не закодировано в ASCII (или другой эквивалентной кодировке).
Кодировка по умолчанию зависит от платформы. В Windows – это ‘cp1252’, а в Linux ‘utf-8’.
Поэтому мы не должны полагаться на кодировку по умолчанию. При работе с файлами в текстовом формате рекомендуется указывать тип кодировки.
f = open("test.txt",mode = 'r',encoding = 'utf-8')
Решение задачи
Исходя из вышеперечисленного, я решил не использовать сторонние библиотеки и модули и решить проблему без них. После недолгого поиска информации о том, как реализовать данную задачу, единственным верным способом оказался определение формата по сигнатуре файла.
Сигнатура файла представляет собой набор байтов, обеспечивающий определение формата файла. Сигнатура имеет следующий вид в шестнадцатеричной системе счисления:
К счастью, в интернете есть два хороший сайта, на которых размещены множество сигнатур разных форматов. Целью стали самые распространенные форматы.
Как оказалось, некоторые сигнатуры подходят под разные форматы файлов, как, например, сигнатура файлов Microsoft Office. Исходя из этого, в некоторых случаях надо будет возвращать список подходящих расширений файла.
Также нередко сигнатуры имеют смещение от начала файла, например, файлы мультимедийного контейнера 3GP.
1. Составление списка данных
В виде списка данных решено использовать JSON файл, с объектом ‘data’, значением которого будет массив объектов следующего вида:
Где:format — формат файла;offset — смещение сигнатуры от начала файла;signature — массив подходящих сигнатур под указанный формат файла.
2. Написание утилиты
Импортируем необходимые модули:
Считываем список данных:
Отлично, список данных загружен. Теперь мы считываем файл в виде байтов. Мы будем считывать лишь первые 32 байта, так как для определения распространенных форматов больше не требуется, а полное считывание большого файла будет занимать много времени.
Если вывести переменную file, то мы увидим что-то похожее на это:
Теперь считанные байты надо перевести в шестнадцатеричную систему:
Далее мы создаем список, в который будут добавляться подходящие форматы:
А теперь самое интересное: создаем конструкцию, которая будет циклично определять формат файла, пока не пройдется по всем возможным форматам в списке данных:
Относительно данной строки:
Поскольку наши байты представлены в виде строки, и за байт отвечает два символа, мы умножаем смещение на 2 и добавляем количество пробелов между «байтами».
И едиственное что нам осталось, это вывести список подходящих форматов, который представлен переменной out.
Списки, кортежи, множества и словари
Списки, кортежи, множества и словари – еще 4 типа данных в Питоне, включающие в себя несколько значений и являющиеся итерируемыми (перебираемыми, как строки).
Особенности показаны в таблице 3.
Список (list) | Кортеж (tuple) | Множество (set) | Словарь (dict) |
Изменяемый | Неизменяемый | Изменяемое | Изменяемый |
Значения могут дублироваться | Значения могут дублироваться | Значения не могут дублироваться | Ключи не могут дублироваться |
Доступ по индексу возможен | Доступ по индексу возможен | Доступ по индексу невозможен | Есть доступ к ключам и значениям |
Таблица 3 – Коллекции данных в Python
Список – последовательность произвольных элементов, разделенных запятой. Обозначается квадратными скобками. Можно доставать отдельные составляющие через индекс, добавить в начало списка или конец те или иные значения, удалить элементы, узнать длину, отсортировать.
Рассмотрим часть функционала.
Результат работы скрипта:
Когда необходимо запретить изменение коллекции, ее удобно представлять в виде кортежа. Более того, он занимает меньшее количество в памяти. Записывается в круглых скобках.
На их основании также возможны срезы, доступ по индексу, нахождение максимума или минимума (если элементы представлены числами), поиск количества вхождений значений.
Результат работы скрипта:
Множества хороши в ситуациях, когда нужна гарантия уникальности всех элементов. Задаются фигурными скобками. При добавлении дубликата размер сета никак не меняется
Важно и то, что порядок объектов внутри множества не гарантирован, что исключает доступ по индексу
Результат работы скрипта:
Словарь – особый тип коллекций. Все его элементы состоят из пар «ключ: значение». Ключ должен быть уникальным, а значения могут повторяться. Обозначается фигурными скобками.
Рассмотрим некоторые операции со словарями.
Результат работы скрипта:
Таким образом, в зависимости от ситуации применяется тот или иной тип коллекций. Чаще всего это списки и словари.
Добавление изображений
Чтобы добавить в файлы MS Word изображения, используется метод add_picture(). Путь к изображению передается как параметр метода add_picture(). Также можно указать ширину и высоту изображения с помощью атрибута docx.shared.Inches().
Приведенный ниже скрипт добавляет изображение из локальной файловой системы в файл my_written_file.docx. Ширина и высота изображения будут 5 и 7 дюймов:
mydoc.add_picture("E:/eiffel-tower.jpg", width=docx.shared.Inches(5), height=docx.shared.Inches(7)) mydoc.save("E:/my_written_file.docx")
После выполнения всех скриптов, рассмотренных в этой статье, окончательный файл my_written_file.docx должен выглядеть следующим образом:
Он должен содержать три абзаца, три заголовка и одно изображение.
The open Function
Before you can read or write a file, you have to open it using Python’s built-in open() function. This function creates a file object, which would be utilized to call other support methods associated with it.
Syntax
file object = open(file_name )
Here are parameter details −
-
file_name − The file_name argument is a string value that contains the name of the file that you want to access.
-
access_mode − The access_mode determines the mode in which the file has to be opened, i.e., read, write, append, etc. A complete list of possible values is given below in the table. This is optional parameter and the default file access mode is read (r).
-
buffering − If the buffering value is set to 0, no buffering takes place. If the buffering value is 1, line buffering is performed while accessing a file. If you specify the buffering value as an integer greater than 1, then buffering action is performed with the indicated buffer size. If negative, the buffer size is the system default(default behavior).
Here is a list of the different modes of opening a file −
Sr.No. | Modes & Description |
---|---|
1 |
r Opens a file for reading only. The file pointer is placed at the beginning of the file. This is the default mode. |
2 |
rb Opens a file for reading only in binary format. The file pointer is placed at the beginning of the file. This is the default mode. |
3 |
r+ Opens a file for both reading and writing. The file pointer placed at the beginning of the file. |
4 |
rb+ Opens a file for both reading and writing in binary format. The file pointer placed at the beginning of the file. |
5 |
w Opens a file for writing only. Overwrites the file if the file exists. If the file does not exist, creates a new file for writing. |
6 |
wb Opens a file for writing only in binary format. Overwrites the file if the file exists. If the file does not exist, creates a new file for writing. |
7 |
w+ Opens a file for both writing and reading. Overwrites the existing file if the file exists. If the file does not exist, creates a new file for reading and writing. |
8 |
wb+ Opens a file for both writing and reading in binary format. Overwrites the existing file if the file exists. If the file does not exist, creates a new file for reading and writing. |
9 |
a Opens a file for appending. The file pointer is at the end of the file if the file exists. That is, the file is in the append mode. If the file does not exist, it creates a new file for writing. |
10 |
ab Opens a file for appending in binary format. The file pointer is at the end of the file if the file exists. That is, the file is in the append mode. If the file does not exist, it creates a new file for writing. |
11 |
a+ Opens a file for both appending and reading. The file pointer is at the end of the file if the file exists. The file opens in the append mode. If the file does not exist, it creates a new file for reading and writing. |
12 |
ab+ Opens a file for both appending and reading in binary format. The file pointer is at the end of the file if the file exists. The file opens in the append mode. If the file does not exist, it creates a new file for reading and writing. |
Выявление ошибок
Иногда, в ходе работы, ошибки случаются. Файл может быть закрыт, потому что какой-то другой процесс пользуется им в данный момент или из-за наличия той или иной ошибки разрешения. Когда это происходит, может появиться IOError. В данном разделе мы попробуем выявить эти ошибки обычным способом, и с применением оператора with. Подсказка: данная идея применима к обоим способам.
Python
try:
file_handler = open(«test.txt»)
for line in file_handler:
print(line)
except IOError:
print(«An IOError has occurred!»)
finally:
file_handler.close()
1 2 3 4 5 6 7 8 |
try file_handler=open(«test.txt») forline infile_handler print(line) exceptIOError print(«An IOError has occurred!») finally file_handler.close() |
В описанном выше примере, мы помещаем обычный код в конструкции try/except. Если ошибка возникнет, следует открыть сообщение на экране
Обратите внимание на то, что следует удостовериться в том, что файл закрыт при помощи оператора finally. Теперь мы готовы взглянуть на то, как мы можем сделать то же самое, пользуясь следующим методом:
Python
try:
with open(«test.txt») as file_handler:
for line in file_handler:
print(line)
except IOError:
print(«An IOError has occurred!»)
1 2 3 4 5 6 |
try withopen(«test.txt»)asfile_handler forline infile_handler print(line) exceptIOError print(«An IOError has occurred!») |
Как вы можете догадаться, мы только что переместили блок with туда же, где и в предыдущем примере. Разница в том, что оператор finally не требуется, так как контекстный диспетчер выполняет его функцию для нас.
Связь с другими языками
pythonnet
Иногда возникает потребность запустить код, написанный на другом языке, через Python, например, в целях проверки работы какого-либо стороннего модуля или для оптимизации кода. Существует несколько библиотек, позволяющих сделать это, например, pythonnet позволяет запустить некоторую часть кода, написанную на C# в Python (pythonnet позволяет рассматривать множество элементов clr, как модули в python).
Создаем проект библиотеки классов C# в visual studio, создаем в неё нужный класс или методы (в случае примера класс, содержащий метод вычисления дискриминанта), создаем .dll и запускаем через pythonnet (более подробно тут):
Обращаемся к C# через Python
JPype
Для этих же целей существует библиотека, которая позволяет запустить Java код в Python. Эта библиотека называется — JPype. Рассмотрим пример работы библиотеки.
Для начала установим её pip install jpype1, далее создадим Java проект, который в будущем скомпилируем в .jar архив, в проекте необходимо создать пакет, в нём класс и прописать следующий код (код вычисляет объем цилиндра):
Теперь можно создать .jar решение проекта.
В python коде импортируем библиотеку jpype, запустим JVM и пропишем путь к созданному .jar архиву. Далее по аналогии с pythonnet импортируем необходимые пакеты и классы:
Таким образом, pythonnet и jpype — отличные решения для интеграции кода C# и Java в Python проект.
Генерация кроссплатформенных путей в Pathlib
Пути используют разные соглашения в разных операционных системах. Windows использует обратный слеш между названиями папок, тогда как все другие популярные операционные системы используют прямой слеш .
Если вы хотите, чтобы ваш код работал, независимо от базовой ОС, вам нужно будет обрабатывать различные соглашения, характерные для базовой платформы. Модуль Pathlib упрощает работу с путями к файлам. В Pathlib можно просто передать путь или название файла объекту , используя слеш, независимо от ОС. Pathlib занимается всем остальным.
Python
pathlib.Path.home() / ‘python’ / ‘samples’ / ‘test_me.py’
1 | pathlib.Path.home()’python»samples»test_me.py’ |
Объект конвертирует в слеш соответствующий операционной системе. может представлять путь Windows или Posix. Кроме того, Pathlib решает многие кросс-функциональные баги, легко обрабатывая пути.
Чтение из файла Python
Чтобы осуществить чтение из файла Python, нужно открыть его в режиме чтения. Для этого можно использовать метод read(size), чтобы прочитать из файла данные в количестве, указанном в параметре size. Если параметр size не указан, метод читает и возвращает данные до конца файла.
>>> f = open("test.txt",'r',encoding = 'utf-8') >>> f.read(4) # чтение первых 4 символов 'This' >>> f.read(4) # чтение следующих 4 символов ' is ' >>> f.read() # чтение остальных данных до конца файла 'my first filenThis filencontains three linesn' >>> f.read() # дальнейшие попытки чтения возвращают пустую строку ''
Метод read() возвращает новые строки как ‘n’. Когда будет достигнут конец файла, при дальнейших попытках чтения мы получим пустые строки.
Чтобы изменить позицию курсора в текущем файле, используется метод seek(). Метод tell() возвращает текущую позицию курсора (в виде количества байтов).
>>> f.tell() # получаем текущую позицию курсора в файле 56 >>> f.seek(0) # возвращаем курсор в начальную позицию 0 >>> print(f.read()) # читаем весь файл This is my first file This file contains three lines
Мы можем прочитать файл построчно в цикле for.
>>> for line in f: ... print(line, end = '') ... This is my first file This file contains three lines
Извлекаемые из файла строки включают в себя символ новой строки ‘n’. Чтобы избежать вывода, используем пустой параметр end метода print(),.
Также можно использовать метод readline(), чтобы извлекать отдельные строки. Он читает файл до символа новой строки.
>>> f.readline() 'This is my first filen' >>> f.readline() 'This filen' >>> f.readline() 'contains three linesn' >>> f.readline() ''
Метод readlines() возвращает список оставшихся строк. Все эти методы чтения возвращают пустую строку, когда достигается конец файла.
>>> f.readlines()
Установка и подготовка среды
Чтобы начать программировать на Питоне, требуется совершить 2 шага:
- Установить последний релиз Python (скачивается с официального сайта https://www.python.org/downloads/);
- Загрузить программу для разработки (для новичков лучше всего подойдет PyCharm версии Community – https://www.jetbrains.com/ru-ru/pycharm/download/).
В нашем бесплатном руководстве по Python мы будем пользоваться только этим функционалом. Его достаточно, чтобы самому дома с нуля разобраться в Питоне.
Чтобы создать свой первый проект запускаем PyCharm и выбираем меню File -> New Project. Проверяем, чтобы в поле Base Interpreter стояла самая новая версия Питона.
Теперь в папке проекта можно создать файл с расширением «.py», в котором и будет писаться код. Чтобы запустить скрипт, нажимаем либо зеленую кнопку «Run», либо выбираем ее же через правую кнопку мыши. Внизу PyCharm при этом откроется окно консоли, отражающее итог и ход работы программы.
Таким образом, схема работы достаточно проста: пишем код, запускаем его, смотрим в терминал результат.
Чтобы проверить, что все установлено успешно и вы не напутали ничего в настройках, идем в панель терминала (внизу) и пишем там команду «python -V». Она отобразит версию Python, которая была проинсталлирована на компьютер.
В случае, если операционная система отличается от Windows, то команда будет выглядеть так: «python3 -V» (это связано с тем, что в UNIX-подобных ядрах по умолчанию включена более старая версия языка – 2.7. Так как она больше не поддерживается, рекомендуется работать с третьей – 3.9 или выше).
Синтаксис YAML¶
Как и Python, YAML использует отступы для указания структуры документа.
Но в YAML можно использовать только пробелы и нельзя использовать знаки
табуляции.
Еще одна схожесть с Python: комментарии начинаются с символа # и
продолжаются до конца строки.
Список
Список может быть записан в одну строку:
switchport mode access, switchport access vlan, switchport nonegotiate, spanning-tree portfast, spanning-tree bpduguard enable
Или каждый элемент списка в своей строке:
- switchport mode access - switchport access vlan - switchport nonegotiate - spanning-tree portfast - spanning-tree bpduguard enable
Когда список записан таким блоком, каждая строка должна начинаться с
(минуса и пробела), и все строки в списке должны быть на одном
уровне отступа.
Словарь также может быть записан в одну строку:
{ vlan 100, name IT }
Или блоком:
vlan 100 name IT
Строки
Строки в YAML не обязательно брать в кавычки. Это удобно, но иногда всё
же следует использовать кавычки. Например, когда в строке используется
какой-то специальный символ (специальный для YAML).
Такую строку, например, нужно взять в кавычки, чтобы она была корректно
воспринята YAML:
command "sh interface | include Queueing strategy:"
Шаг 3 — Чтение файла
Файл был открыт, и мы можем работать с ним через переменную, которую мы ему присвоили. Python предоставляет три связанные операции для чтения информации из файла. Покажем, как использовать каждую из них.
Первая операция <file>.read() возвращает все содержимое файла как одну строку.
days_file.read() Вывод 'MondaynTuesdaynWednesdaynThursdaynFridaynSaturdaynSundayn'
Вторая операция <file>.readline() возвращает следующую строку файла (текст до следующего символа новой строки, включая сам символ). Проще говоря, эта операция считывает файл по частям.
days_file.readline() Вывод 'Mondayn'
Поэтому, когда вы прочтете строку с помощью readline, она перейдет к следующей строке. Если вы снова вызовете эту операцию, она вернет следующую строку, прочитанную в файле.
days_file.readline() Вывод 'Tuesdayn'
Последняя операция, <file>.readlines(), возвращает список строк в файле. При этом каждый элемент списка представляет собой одну строку.
days_file.readlines() Вывод
Как только файл был прочитан с использованием одной из операций, его нельзя прочитать снова. Например, если вы запустите days_file.read(), за которой следует days_file.readlines(), вторая операция вернет пустую строку. Поэтому, когда вы захотите прочитать содержимое файла, вам нужно будет сначала открыть новую файловую переменную.
The write() Method
The write() method writes any string to an open file. It is important to note that Python strings can have binary data and not just text.
The write() method does not add a newline character (‘\n’) to the end of the string −
fileObject.write(string)
Here, passed parameter is the content to be written into the opened file.
Example
#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") fo.write( "Python is a great language.\nYeah its great!!\n") # Close opend file fo.close()
The above method would create foo.txt file and would write given content in that file and finally it would close that file. If you would open this file, it would have following content.
Python is a great language. Yeah its great!!
Основы
1. Переменные
Вы можете думать о переменных, как о словах, что держат в себе какое-то значение. Очень просто.
В Python нет ничего проще, чем определить переменную и присвоить ей какое-то значение. Представьте, что мы ходим сохранить число 1 в переменной, которую назовём «one». Это будет выглядеть следующим образом
one = 1
Что может быть проще? И при этом вы только что присвоили значение 1 для переменной «one».
two = 2 some_number = 10000
И таким образом вы можете присвоить любое значение любой переменной. И как видно в примере кода повыше, переменная «two» хранит числовое значение 2, а переменная «some_number» хранит значение 10,000.
Помимо числовых значений, мы также можем использовать логические (true/false, в переводе истинно/ложно), строки, десятичные числа и много других типов.
# логические true_boolean = True false_boolean = False # строки my_name = "Leandro Tk" # десятичные book_price = 15.80
2. Контролирование потока: условные состояния
Ключевое слово «if» используется для ситуаций, когда нам нужно выполнить разные действия при положительных или отрицательных условиях. При значении «истинно» будет выполняться описанный после слова «if» блок, например:
if True: print("Hello Python If") if 2 > 1: print("2 is greater than 1")
2 больше, чем 1, поэтому выполняется «print»-команда.
Блок «else» выполнится при условии, если условие «if» ложно.
if 1 > 2: print("1 is greater than 2") else: print("1 is not greater than 2")
Так как 1 не больше 2, то выполняется в блоке «else».
Также можно использовать «elif» условие:
if 1 > 2: print("1 is greater than 2" elif 2 > 1: print("1 is not greater than 2") else: print("1 is equal to 2")
3. Циклы / итерации
В Python, можно создавать циклы различными способами. Мы расскажем о двух: while и for.
Цикл While: до тех пор, пока условие истинно, код внутри цикла будет выполняться. Таким образом, следующий код напишет числа от 1 до 10.
num = 1 while num <= 10: print(num) num += 1
Циклу while нужно «условие повтора». Если оно остаётся истинным, итерации продолжаются. В приведённом примере, когда значение num становится 11, условие цикла становится ложным.
Ещё один небольшой пример, чтобы лучше понять цикл while:
loop_condition = True while loop_condition: print("Loop Condition keeps: %s" %(loop_condition)) loop_condition = False
Условие цикла(loop condition) установлено в True, поэтому цикл будет выполняться до тех пор, пока мы не переключим его в значение False.
Цикл for: в цилке for мы назначаем переменную «num» для самого цикла, который в свою очередь будет увеличивать значение этой переменной. Следующий код напишет числа от 1 до 10 точно так же, как и цикл while:
for i in range(1, 11): print(i)
Видите? Очень просто. Цикл начинается с 1 и продолжается до 11 элемента.