繁体   English   中英

如何通过用户输入从 CSV 文件中打印某些数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM