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

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

Привет, начинающие Python-разработчики! Сегодня мы погрузимся в увлекательный мир работы с файлами. Умение читать, записывать и обрабатывать данные из файлов — это ключевой навык для любого программиста. Давайте представим, что файлы — это как ящики с сокровищами, а мы — искатели приключений, которые учатся их открывать, исследовать и наполнять новыми богатствами (данными)!

1. Открытие файла: ключ к сокровищнице

Прежде чем мы сможем что-либо сделать с файлом, нам нужно его открыть. В Python это делается с помощью функции `open()`. Давайте создадим простой текстовый файл и научимся его открывать.

Для Windows:


# Создаем файл
with open("C:\\Users\\YourUsername\\Desktop\\treasure.txt", "w") as file:
    file.write("Это наш первый файл-сокровище!")

# Открываем файл для чтения
with open("C:\\Users\\YourUsername\\Desktop\\treasure.txt", "r") as file:
    content = file.read()
    print(content)

Для Mac:


# Создаем файл
with open("/Users/YourUsername/Desktop/treasure.txt", "w") as file:
    file.write("Это наш первый файл-сокровище!")

# Открываем файл для чтения
with open("/Users/YourUsername/Desktop/treasure.txt", "r") as file:
    content = file.read()
    print(content)

При запуске этого кода, вы увидите вывод: «Это наш первый файл-сокровище!»

2. Чтение данных: изучаем содержимое ящика

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


# Создадим файл с несколькими строками
with open("treasure_map.txt", "w") as file:
    file.write("Первая подсказка: иди на север\n")
    file.write("Вторая подсказка: поверни направо у большого дуба\n")
    file.write("Третья подсказка: копай под красным камнем\n")

# Чтение всего файла
with open("treasure_map.txt", "r") as file:
    content = file.read()
    print("Весь файл:\n", content)

# Чтение файла по строкам
with open("treasure_map.txt", "r") as file:
    print("\nПострочно:")
    for line in file:
        print(line.strip())  # strip() убирает лишние пробелы и переносы строк

# Чтение определенного количества символов
with open("treasure_map.txt", "r") as file:
    chunk = file.read(20)
    print("\nПервые 20 символов:", chunk)

3. Запись данных: пополняем нашу коллекцию

Теперь давайте научимся добавлять новые сокровища в наш ящик, то есть записывать данные в файл.


# Запись в файл
with open("new_treasures.txt", "w") as file:
    file.write("Золотая монета\n")
    file.write("Серебряный кубок\n")
    file.write("Волшебная лампа\n")

# Добавление данных в конец файла
with open("new_treasures.txt", "a") as file:
    file.write("Карта острова сокровищ\n")

# Проверим содержимое файла
with open("new_treasures.txt", "r") as file:
    print(file.read())

4. Работа с CSV файлами: организуем наши сокровища

CSV (Comma-Separated Values) файлы очень популярны для хранения табличных данных. Давайте научимся работать с ними, используя встроенный модуль `csv`.


import csv

# Создаем CSV файл с данными о сокровищах
treasures = [
    ['Название', 'Ценность', 'Вес (кг)'],
    ['Золотая монета', 100, 0.1],
    ['Серебряный кубок', 50, 0.5],
    ['Волшебная лампа', 1000, 1.0]
]

with open('treasure_inventory.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(treasures)

# Читаем данные из CSV файла
with open('treasure_inventory.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(', '.join(row))

# Добавляем новое сокровище
new_treasure = ['Карта острова', 500, 0.05]
with open('treasure_inventory.csv', 'a', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(new_treasure)

print("\nОбновленный инвентарь:")
with open('treasure_inventory.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(', '.join(row))

5. Обработка больших файлов: справляемся с гигантскими ящиками

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


# Создадим большой файл для демонстрации
with open("big_treasure_list.txt", "w") as file:
    for i in range(1000000):
        file.write(f"Сокровище #{i+1}\n")

# Подсчет строк в файле без загрузки его в память
def count_lines(filename):
    with open(filename, 'r') as file:
        return sum(1 for line in file)

print(f"Количество строк в файле: {count_lines('big_treasure_list.txt')}")

# Чтение файла частями
def read_in_chunks(file_object, chunk_size=1024):
    while True:
        data = file_object.read(chunk_size)
        if not data:
            break
        yield data

with open("big_treasure_list.txt", "r") as file:
    chunk_count = 0
    for chunk in read_in_chunks(file):
        chunk_count += 1
        if chunk_count <= 3:  # Выводим только первые три части
            print(f"Часть {chunk_count}: {chunk[:50]}...")  # Показываем первые 50 символов каждой части

print(f"Всего частей: {chunk_count}")

Этот метод позволяет нам работать с файлами любого размера, не загружая их целиком в память.

«Работа с файлами в Python — это как исследование огромной сокровищницы. Каждый файл — это новый ящик с драгоценностями, который ждет, чтобы его открыли и изучили. С помощью Python у вас есть все инструменты, чтобы стать настоящим мастером в обращении с этими цифровыми сокровищами. Продолжайте практиковаться, и вскоре вы сможете управлять данными с легкостью опытного искателя приключений!»

Надеюсь, этот урок помог вам понять основы работы с файлами в Python. Помните, практика — ключ к успеху. Экспериментируйте с различными типами файлов и методами их обработки, и вскоре вы станете настоящим экспертом в работе с данными!

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x