[英]How do I read through a CSV file twice and print certain rows based on arguments passed through the function?
[英]How do I print certain data from a CSV file through user input
我创建了一个 CSV 文件,该文件通过用户输入存储一本书、作者和出版年份。 我现在想要求用户选择一个作者,程序应该显示该作者的所有书籍,但我不知道该怎么做
到目前为止,这是我的代码:
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)
这应该做。
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
编码
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])
代码运行时:
Enter the name of an author: A. Huxley
Brave New World
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.