Уроки Питон №9/12. Ввод-вывод данных input(), int(input()). Работа с файлами в Питоне

Урок 12. Ввод-вывод данных. Работа с файлами

В уроке рассмотрены основные способы ввода и вывода данных в Python с использованием консоли, и работа с файлами: открытие, закрытие, чтение и запись.

Вывод данных в консоль

Один из самых распространенных способов вывести данные в Python – это напечатать их в консоли. Если вы находитесь на этапе изучения языка, такой способ является основным для того, чтобы быстро просмотреть результат свой работы. Для вывода данных в консоль используется функция print.

Рассмотрим основные способы использования данной функции.

>>> print("Hello")

Hello

>>> print("Hello, " + "world!")

Hello, world!

>>> print("Age: " + str(23))

Age: 23

 

>>> print("Age: " , 23)

Age: 23

 

По умолчанию, для разделения элементов в функции print используется пробел.

>>> print("A", "B", "C")

A B C

Для замены разделителя необходимо использовать параметр sep функции print.

print("A", "B", "C", sep="#")

A#B#C

 

print("A", "B", "C", sep=" ")

A B C

 

В качестве конечного элемента выводимой строки, используется символ перевода строки.

>>> for i in range(3):

    print("i: " + str(i))  

i: 0

i: 1

i: 2

 

>>> for i in range(3):

    print("i: ", i)  

i: 0

i: 1

i: 2

 

 

Для его замены используется параметр end.

>>> for i in range(3):

    print("[i: " + str(i) + "]", end=" -- ")

[i: 0] -- [i: 1] -- [i: 2] --

 

Ввод данных с клавиатуры

Для считывания вводимых с клавиатуры данных используется функция input().

>>> input()

test

'test'

Для сохранения данных в переменной используется следующий синтаксис.

>>> a = input()

hello

>>> print(a)

hello

Если считывается с клавиатуры целое число, то строку, получаемую с помощью функции input(), можно передать сразу в функцию int().

>>> val = int(input())

123

>>> print(val)

123

>>> type(val)

<class 'int'>

Для вывода строки-приглашения, используйте ее в качестве аргумента функции input().

>>> tv = int(input("input number: "))

input number: 334

>>> print(tv)

334

Преобразование строки в список осуществляется с помощью метода split(), по умолчанию, в качестве разделителя, используется пробел.

>>> l = input().split()

1 2 3 4 5 6 7

>>> print(l)

['1', '2', '3', '4', '5', '6', '7']

Разделитель можно заменить, указав его в качестве аргумента метода split().

>>> nl = input().split("-")

1-2-3-4-5-6-7

>>> print(nl)

['1', '2', '3', '4', '5', '6', '7']

Для считывания списка чисел с одновременным приведением их к типу int можно воспользоваться вот такой конструкцией.

>>> nums = map(int, input().split())

1 2 3 4 5 6 7

>>> print(list(nums))

[1, 2, 3, 4, 5, 6, 7]

 

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

Открытие и закрытие файла

Для открытия файла используется функция open(), которая возвращает файловый объект. Наиболее часто используемый вид данной функции выглядит так open(имя_файла, режим_доступа).

Для указания режима доступа используется следующие символы:

r’ – открыть файл для чтения;

w’ – открыть файл для записи;

x’ – открыть файл с целью создания, если файл существует, то вызов функции open завершится с ошибкой;

a’ – открыть файл для записи, при этом новые данные будут добавлены в конец файла, без удаления существующих;

b’ – бинарный режим;

t’ – текстовый режим;

+’ – открывает файл для обновления.

По умолчанию файл открывается на чтение в текстовом режиме.

У файлового объекта есть следующие атрибуты.

file.closed – возвращает true если файл закрыт и false в противном случае;

file.mode – возвращает режим доступа к файлу, при этом файл должен быть открыт;

file.name – имя файла.

>>> f = open("test.txt", "r")

>>> print("file.closed: " + str(f.closed))

file.closed: False

>>> print("file.mode: " + f.mode)

file.mode: r

>>> print("file.name: " + f.name)

file.name: test.txt

Для закрытия файла используется метод close().

 

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

Чтение данных из файла осуществляется с помощью методов read(размер) и readline().

Метод read(размер) считывает из файла определенное количество символов, переданное в качестве аргумента. Если использовать этот метод без аргументов, то будет считан весь файл.

>>> f = open("test.txt", "r")

>>> f.read()

'1 2 3 4 5\nWork with file\n'

>>> f.close()

В качестве аргумента метода можно передать количество символом, которое нужно считать.

>>> f = open("test.txt", "r")

>>> f.read(5)

'1 2 3'

>>> f.close()

Метод readline() позволяет считать строку из открытого файла.

>>> f = open("test.txt", "r")

>>> f.readline()

'1 2 3 4 5\n'

>>> f.close()

 

 

Построчное считывание можно организовать с  помощью оператора for.

>>> f = open("test.txt", "r")

>>> for line in f:

...     print(line)

...

1 2 3 4 5

Work with file

 

>>> f.close()

 

Запись данных в файл

Для записи данных файл используется метод write(строка), при успешной записи он вернет количество записанных символов.

>>> f = open("test.txt", "a")

>>> f.write("Test string")

11

>>> f.close()

 

123456789

1  2  3  4 5 6 7

Дополнительные методы для работы с файлами

Метод tell() возвращает текущую позицию “условного курсора” в файле. Например, если вы считали пять символов, то “курсор” будет установлен в позицию 5.

>>> f = open("test.txt", "r")

>>> f.read(5)

'1 2 3'

>>> f.tell()

5

>>> f.close()

Метод seek(позиция) выставляет позицию в файле.

>>> f = open("test.txt", "r")

>>> f.tell()

0

>>> f.seek(8)

8

>>> f.read(1)

'5'

>>> f.tell()

9

>>> f.close()

Хорошей практикой при работе с файлами является применение оператора with. При его использовании нет необходимости закрывать файл, при завершении работы с ним, эта операция будет выполнена автоматически.

>>> with open("test.txt", "r") as f:

...     for line in f:

...             print(line)

...

1 2 3 4 5

Work with file

Test string

>>> f.closed

True

Популярные репетиторы:

Рейтинг 5 из 5: 45 отзывов
 
Я мечтал собрать вместе пару моих основных пристрастий: Математику, Информатику и Обучение, c самого начала своего продвижения по службе, когда еще обучался в аспирантуре.

Высококлассный математик для школьников и студентов, PhD, педагогический стаж более 18 лет, без задержки   подготовит без посредников контрольной работе по математике на 2 курс с помощью новых технологий по развитию памяти и ускорению умственной работы . 

Свободно программирует на JavaScript, C/C++ и R. Участвует в ведущих научных конференциях WWW, CVPR и KDD . Консультации по математическим пакетам MathCad, JupyterLab и Maple . Некоторое время поработал директором в стартапе по Machine Learning и Data Science.

Занятия ведутся Локально в Москве м. Китай-город и дистанционно по Google Hangout. Более 320 учащихся  поступили «на бюджет» в ВУЗы Москвы: МАИ, МЭИ, ВШЭ и ФИ и многие другие. Опыт преподавателя по математике для абитуриентов более 20 лет. 他說中國.

Запись на занятия

Ваше сообщение отправлено