从 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)
你使用哪两个由你决定。
(代码未经测试。可能包含拼写错误)
我正在尝试将特定字符索引到它们自己的变量中,但我只能为 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)
你使用哪两个由你决定。
(代码未经测试。可能包含拼写错误)