7.4. Работа с потоками ввода-вывода (I/O).

Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

Самоучитель Python 3, собранный из материалов данного сайта. Предназначен в основном для тех, кто хочет изучить язык программирования Python с нуля.

Работа с потоками ввода-вывода (I/O) в Python включает в себя обработку стандартных потоков ввода, вывода и ошибок, а также возможность работы с другими потоками ввода-вывода, такими как файлы, сокеты и т. д. Давайте рассмотрим основные аспекты работы с потоками ввода-вывода в Python:
 
Стандартные потоки ввода-вывода
В Python стандартные потоки ввода, вывода и ошибок представлены объектами:
sys.stdin используется для чтения данных из стандартного ввода (обычно клавиатуры)
sys.stdout используется для вывода данных в стандартный вывод (обычно на экран).
sys.stderr используется для вывода сообщений об ошибках в стандартный вывод ошибок (обычно на экран).
 
Пример чтения данных из стандартного ввода
import sys

data = sys.stdin.readline()
print("Вы ввели:", data)
 
Пример вывода данных в стандартный вывод
import sys

sys.stdout.write("Привет, мир!\n")
 
Пример вывода сообщения об ошибке в стандартный вывод ошибок
import sys

sys.stderr.write("Это сообщение об ошибке!\n")
 
Работа с файлами и другими потоками ввода-вывода
Помимо стандартных потоков ввода-вывода, в Python можно работать с файлами, сетевыми сокетами, процессами и другими объектами, предоставляющими интерфейс ввода-вывода. Для работы с файлами используется функция `open()`, которая позволяет открыть файл в определенном режиме доступа (чтение, запись и т. д.).
with open("file.txt", "r") as file:
    data = file.read()
    print(data)
with open("file.txt", "w") as file:
    file.write("Hello, world!\n")
 
Потоки ввода-вывода в сети
В Python также можно работать с сетевыми потоками ввода-вывода, используя модуль `socket`. Этот модуль позволяет создавать сокеты и осуществлять обмен данными между клиентом и сервером через сеть. Пример создания TCP-сервера:
import socket

HOST = '127.0.0.1'
PORT = 12345

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server:
    server.bind((HOST, PORT))
    server.listen()
    conn, addr = server.accept()
    with conn:
        print('Connected by', addr)
        while True:
            data = conn.recv(1024)
            if not data:
                break
                conn.sendall(data)
Соотвественно пример создания TCP-клиента:
import socket

HOST = '127.0.0.1'
PORT = 12345

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client:
    client.connect((HOST, PORT))
    client.sendall(b'Hello, world')
    data = client.recv(1024)
    print('Received', repr(data))

 

категории

ТЕОРИЯ

  • Введение в Python
  • Основы программирования на Python
  • Управляющие конструкции
  • Структуры данных
  • Функции и модули
  • Обработка исключений
  • Работа с файлами и потоками
  • файловая система
  • Объектно-ориентированное программирование (ООП)
  • Регулярные выражения
  • Дополнительные темы

Мы в соцсетях