Saxar Saxarer
Ученик
(53),
на голосовании
5 месяцев назад
import csv
# 1. Создание файла .csv и добавление данных data = [ ["Властелин колец", "Джон Р. Р. Толкин", "Великобритания", 1954], ["Гордость и предубеждение", "Джейн Остин", "Великобритания", 1813], ]
with open('Books.csv', 'w', newline='') as file: writer = csv.writer(file) writer.writerow(["Наименование книги", "Писатель / Автор", "Страна автора", "Год издания"]) writer.writerows(data)
# 2. Добавление новой записи и вывод каждой строки файла .csv new_entry = input("Введите новую запись в формате 'Наименование книги,Писатель / Автор,Страна автора,Год издания': ") with open('Books.csv', 'a', newline='') as file: writer = csv.writer(file) writer.writerow(new_entry.split(','))
with open('Books.csv', 'r') as file: reader = csv.reader(file) for row in reader: print(', '.join(row))
# 3. Добавление записей в список num_entries = int(input("Введите количество записей, которые вы хотите добавить: ")) new_entries = [input("Введите новую запись в формате 'Наименование книги,Писатель / Автор,Страна автора,Год издания': ").split(',') for _ in range(num_entries)] with open('Books.csv', 'a', newline='') as file: writer = csv.writer(file) writer.writerows(new_entries)
# 4. Запросы # a. Вывод книг указанного автора author = input("Введите автора: ") with open('Books.csv', 'r') as file: reader = csv.reader(file) books = [row for row in reader if row[1] == author] if books: for book in books: print(', '.join(book)) else: print("В списке нет ни одной книги этого автора.")
# b. Вывод книг, используя заданный промежуток времени start_year = int(input("Введите начальный год поиска: ")) end_year = int(input("Введите конечный год поиска: ")) with open('Books.csv', 'r') as file: reader = csv.reader(file) books = [row for row in reader if start_year <= int(row[3]) <= end_year] for book in books: print(', '.join(book))
# c. Вывод данных с нумерацией строк with open('Books.csv', 'r') as file: reader = csv.reader(file) for i, row in enumerate(reader, start=1): print(f"{i}. {', '.join(row)}")
# d. Изменение данных в файле
Подскажите что нужно сделать в даннном случае с индексом books = [row for row in reader if row[1] == author] чтобы небыло ошибки?
# 1. Создание файла .csv и добавление данных
data = [
["Властелин колец", "Джон Р. Р. Толкин", "Великобритания", 1954],
["Гордость и предубеждение", "Джейн Остин", "Великобритания", 1813],
]
with open('Books.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(["Наименование книги", "Писатель / Автор", "Страна автора", "Год издания"])
writer.writerows(data)
# 2. Добавление новой записи и вывод каждой строки файла .csv
new_entry = input("Введите новую запись в формате 'Наименование книги,Писатель / Автор,Страна автора,Год издания': ")
with open('Books.csv', 'a', newline='') as file:
writer = csv.writer(file)
writer.writerow(new_entry.split(','))
with open('Books.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(', '.join(row))
# 3. Добавление записей в список
num_entries = int(input("Введите количество записей, которые вы хотите добавить: "))
new_entries = [input("Введите новую запись в формате 'Наименование книги,Писатель / Автор,Страна автора,Год издания': ").split(',') for _ in range(num_entries)]
with open('Books.csv', 'a', newline='') as file:
writer = csv.writer(file)
writer.writerows(new_entries)
# 4. Запросы
# a. Вывод книг указанного автора
author = input("Введите автора: ")
with open('Books.csv', 'r') as file:
reader = csv.reader(file)
books = [row for row in reader if row[1] == author]
if books:
for book in books:
print(', '.join(book))
else:
print("В списке нет ни одной книги этого автора.")
# b. Вывод книг, используя заданный промежуток времени
start_year = int(input("Введите начальный год поиска: "))
end_year = int(input("Введите конечный год поиска: "))
with open('Books.csv', 'r') as file:
reader = csv.reader(file)
books = [row for row in reader if start_year <= int(row[3]) <= end_year]
for book in books:
print(', '.join(book))
# c. Вывод данных с нумерацией строк
with open('Books.csv', 'r') as file:
reader = csv.reader(file)
for i, row in enumerate(reader, start=1):
print(f"{i}. {', '.join(row)}")
# d. Изменение данных в файле
Подскажите что нужно сделать в даннном случае с индексом books = [row for row in reader if row[1] == author] чтобы небыло ошибки?