2017-05-01 150 views
0

此代碼迴路輸出一個CSV文件的前兩行:蟒蛇與csv文件

with open('myfile.csv', 'r') as f: 
    for n, l in enumerate(f): 
     if n > 1: 
      break 
     print l 

如何將代碼集成上面下面的代碼? (我期待sendPackage爲兩行)

with open(sys.argv[1]) as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader: 
     sendPackage(row, job_id) 

回答

1

還有其他的方法,但這是直截了當的答案做什麼你問:

with open(sys.argv[1]) as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row_num, row in enumerate(reader): 
     if row_num > 1: 
      break 
     sendPackage(row, job_id) 
1

一個更合適的方法是使用itertools.islice

import csv 
import sys 
from itertools import islice 

def sendPackage(row, job_id): 
    print('row {}: job {}'.format(row, job_id)) 

with open(sys.argv[1]) as csvfile: 

    reader = csv.DictReader(csvfile) 
    for row in islice(reader, 2): 
     sendPackage(row, 1) # dummy value for job_id 

該代碼從reader開始最多需要2個元素。如果少於2個元素在迭代它們之後停止。