我需要逐行读取csv文件并进行一些计算。例如,假设我有一个名为test.csv的csv文件,其数据如下。我想逐行阅读文件,并计算每个客户的利润(收入支出(。
client,revenue,expenses
client_a,1000,450
client_b,2000,1200
client_c,1500,350
我在网上找了很多,我不太确定。我可以逐行读取文件或打印文件,但不确定是否需要为每个字段分配变量。我想我需要将它们声明为int,因为我正在进行计算。
我不想使用列表。
以下是我必须读取文件并将其打印在屏幕上的内容。我知道我需要逐行循环浏览文件并进行计算。纠结于如何从csv文件中调用值以及如何忽略第一行。
inputfile = open('test.csv', "r")
print(inputfile.readline())
至少,您应该为此使用csv库。
import csv
with open("input.csv", "r") as file:
mycsvfile = csv.reader(file, delimiter=",")
for line, content in enumerate(mycsvfile):
if line == 0:
continue
print("the client number {} is : {}".format(line, content[0]))
print("the client number {} earns : {} $".format(line, content[1]))
print("the client number {} spends {} $".format(line, content[2]))
输出将是
the client number 1 is : client_a
the client number 1 earns : 1000 $
the client number 1 spends 450 $
the client number 2 is : client_b
the client number 2 earns : 2000 $
the client number 2 spends 1200 $
the client number 3 is : client_c
the client number 3 earns : 1500 $
the client number 3 spends 350 $
csv
模块中的DictReader
将从csv文件中的每一行创建字典。它将把标题视为键,把它下面的行视为值。
分配后,迭代inputfile
,并在每个值转换为整数后打印每对字典和peform计算
from csv import DictReader
inputfile = DictReader(open('test.csv'))
for row in inputfile:
print(f"{row['client']} profit : {int(row['revenue']) - int(row['expenses'])}")
# client_a profit : 550
# client_b profit : 800
# client_c profit : 1150