从 csv 文件中索引多个字符

Indexing a multiple characters from a csv file

我正在尝试将特定字符索引到它们自己的变量中,但我只能为 1 个字符执行此操作。

with open(fileName) as f:
    count1 = sum(l[0] == '1' for l in f)
    count2 = sum(l[0] == '2' for l in f)

print(count1)
print(count2)

这是我的输出

5 0

根据csv文件中的值,应该是:

5 4

我应该提一下,当我将第一个变量中的值从“1”更改为“2”时,它确实给了我 4,但出于某种原因我不能同时执行这两个操作。

好吧,一旦你迭代了 f 一次,f 就用完了。也就是说,从中读取将 return 什么都没有。

基本上有两种方法可以解决这个问题:

1:打开文件两次

with open(fileName) as f:
    count1 = sum(l[0] == '1' for l in f)
with open(fileName) as f:
    count2 = sum(l[0] == '2' for l in f)

2: 将文件读入内存并使用

with open(fileName) as f:
    lines = f.readlines()

count1 = sum(l[0] == '1' for l in lines)
count2 = sum(l[0] == '2' for l in lines)

你使用哪两个由你决定。

(代码未经测试。可能包含拼写错误)