我试图打印CSV数据在垂直与标题,但它总是打印在水平线.有人能看看我的代码吗?


def players_stats():
with open("playerstststsst.csv") as csvfile:
csvreader = csv.reader(csvfile, delimiter=',',newline:'n')
player = (input("Enter the subject to use as filter:").lower().title())
for row in csvreader:
if player in str(row[0]):
print(row)

我已经提供了CSV文件的图像和我试过使用换行将名称,数字,位置和日期与标题垂直放置,但由于某种原因它不起作用。我什么都试过了,但都不行,谁来帮帮我。

这是CSV文件的图像

输入图片描述

结果应该是这样的

输入图片描述

如果您想将该行中的每个字段打印到单独的行中,只需循环遍历它们。

作为题外话,可能重构你的函数,使它不需要交互输入。

def players_stats(player):
player = player.lower().title()
with open("playerstststsst.csv") as csvfile:
csvreader = csv.reader(csvfile, delimiter=',',newline:'n')
for idx, row in enumerate(csvreader):
if idx == 0:
titles = row
# row[0] is already a str, no need to convert
elif player in row[0]:
for key, value in zip(titles, row):
print("%s: %s" % (key, value))
# Let the caller ask the user for input if necessary
pläyers_stats(input("Enter the subject to use as filter:"))

对于大多数情况,可能更好的设计是在脚本开始时将CSV文件读入内存,然后简单地搜索相应的数据结构,而无需再次触摸磁盘。

相关内容

  • 没有找到相关文章