2013-02-03 30 views
18

thể trùng lặp: When processing CSV data, how do I ignore the first line of data?Bỏ qua dòng đầu tiên (trường) trong vòng lặp bằng tệp CSV?

Tôi đang sử dụng python để mở tập tin CSV. Tôi đang sử dụng vòng lặp công thức nhưng tôi cần phải bỏ qua hàng đầu tiên bởi vì nó có tiêu đề.

Cho đến nay tôi nhớ là một cái gì đó như thế này nhưng nó thiếu một cái gì đó: Tôi tự hỏi nếu ai đó biết mã cho những gì tôi đang cố gắng để làm.

for row in kidfile: 
    if row.firstline = false: # <====== Something is missing here. 
     continue 
    if ...... 
+0

Tại sao một người nào đó hiển thị cho bạn nhưng không cho phép bạn ghi chú và tại sao điều đó có liên quan đến câu hỏi của bạn? – danodonovan

Trả lời

37

Có lẽ bạn muốn một cái gì đó như:

firstline = True 
for row in kidfile: 
    if firstline: #skip first line 
     firstline = False 
     continue 
    # parse the line 

Một cách khác để đạt được kết quả tương tự được gọi readline trước khi vòng lặp:

kidfile.readline() # skip the first line 
for row in kidfile: 
    #parse the line 
+3

Hàm 'next' là cách tiếp cận ngắn gọn hơn nhiều. – vaerek

73

Có rất nhiều cách để bỏ qua là người đầu tiên hàng. Ngoài những nói bởi Bakuriu, tôi sẽ thêm:

with open(filename, 'r') as f: 
    next(f) 
    for line in f: 

và:

with open(filename,'r') as f: 
    lines = f.readlines()[1:] 
15

csvreader.next() Trả lại hàng tiếp theo của đối tượng iterable của người đọc như một danh sách, phân tích cú pháp theo phương ngữ hiện tại.

+4

Trong python3, phương thức là 'reader .__ next __()', nên được gọi bằng cách sử dụng 'next (reader)' – travc

Các vấn đề liên quan