Skip to main content
 首页 » 编程设计

python之返回 csv 模块 python 中行的索引

2025年05月04日14飞鱼

我正在尝试为 tsv 表的每一行返回一个特定的字符串,该字符串读出“RowX:[行的总和]”,其中 X = 行号(索引 +1)。到目前为止,除了行号之外,我可以让一切正常工作。

我的代码:

#!/usr/bin/env python 
 
from __future__ import division, print_function 
 
import sys 
import csv 
 
 
 
def my_sum(row): 
    a = 0 
    for i in row: 
    a = a + float(i) 
    return a 
 
def main(): 
    tsvfile_input = sys.argv[1] 
    data = csv.reader(open(tsvfile_input), delimiter = '\t') 
 
    for row in data: 
        RowSum = my_sum(row) 
        print('Row' + 'X' + ': ' + str(RowSum)) 
 
 
 
 
if __name__ == '__main__': 
    main() 

到目前为止,我已经尝试用 data.index() 代替“X”,它返回:

AttributeError: '_csv.reader' object has no attribute 'index' 

抱歉,如果很明显。我对编码非常陌生,并将其作为练习的一部分。另外,如果您想知道为什么我不只使用 sum(),不使用 sum() 也是练习的一部分。

谢谢!

请您参考如下方法:

enumerating怎么样?数据?

for index, row in enumerate(data): 
    RowSum = my_sum(row) 
    print('Row %d: %f' % (index + 1, rowSum)) 

Python 也已经有 sum 函数,所以你可以这样做:

for index, row in enumerate(data): 
    print('Row %d: %f' % (index + 1, sum(float(num) for num in row))) 

编辑(主要功能的完整示例):

def main(): 
    tsvfile_input = sys.argv[1] 
    data = csv.reader(open(tsvfile_input), delimiter = '\t') 
    for index, row in enumerate(data): 
        print('Row %d: %f' % (index + 1, sum(float(num) for num in row)))