[英]How do I print certain data from a CSV file through user input
I created a CSV file that stores a book, its author and the year the book released, through user input.我创建了一个 CSV 文件,该文件通过用户输入存储一本书、作者和出版年份。 I want to now ask the user to choose an author and the program should display all the books by that author, but I'm not sure how to do this
我现在想要求用户选择一个作者,程序应该显示该作者的所有书籍,但我不知道该怎么做
Here is my code so far:到目前为止,这是我的代码:
import csv
amount = int(input("How many records would you like to store: "))
count = 0
with open("Books.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerow(["", "Book", "Author", "Year released"])
while count < amount:
count += 1
book = input("Enter a book: ")
author = input("Enter it's Author: ")
year = input("Enter the year it released: ")
headers = [count, book, author, year]
with open("Books.csv", 'a') as f:
writer = csv.writer(f)
writer.writerow(headers)
This should do.这应该做。
Example contents of Books.csv Books.csv 的示例内容
,Book,Author,Year released
0,1984,G. Orwell,1949
1,Brave New World,A. Huxley,1932
2,Johnny Got His Gun,D. Trumbo,1939
The code编码
import csv
# getting author and book column indexes in the csv
COLUMNS = ["", "Book", "Author", "Year released"] # first column is the book no.
AUTHOR_COLUMN_INDEX = COLUMNS.index("Author")
BOOK_COLUMN_INDEX = COLUMNS.index("Book")
author = input("Enter the name of an author: ")
with open('Books.csv', 'r', newline='') as f:
for line in csv.reader(f):
if len(line) == len(COLUMNS): # if empty line or invalid line
if line[AUTHOR_COLUMN_INDEX] == author:
print(line[BOOK_COLUMN_INDEX])
When the code is run:代码运行时:
Enter the name of an author: A. Huxley
Brave New World
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.