写第一组行

时间:2016-12-29 16:53:21

标签: python csv

我正在解析csv文件并删除第一列,这已经完成了。我请求您协助如何告诉Python跳过行,只写出包含有意义数据的行。

Result CSV:

Presented_By       Sources        Salesman
 John               Radio          Mary   
 Edwin              Newspaper      Bexie
 Ben                Radio          Jon




                   Radio               2
                   Newspaper           1

我想排除计算来源的底部的部分。我可以添加哪些内容告诉Python忽略第二部分。

import csv
with open("InfoCenterTracker.csv","rb") as source:
    rdr= csv.reader( source )
    with open("result.csv","wb") as result:
        wtr= csv.writer( result )
        for r in rdr:
            wtr.writerow( (r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10], r[11], r[12], r[13], r[14], r[15], r[16], r[17], r[18]) )

        print "Column deleted"

2 个答案:

答案 0 :(得分:0)

假设要跳过任何空第一列的行是否正确?是否有任何实际数据行,第一行为空?

如果可以安全,您可以添加:

if r[1] == "": 
  pass
else:
   wtr.writerow(<Row contents>)

我想知道你的双括号是否有意?也许它可以缩短为

wtr.writerow(r)

答案 1 :(得分:0)

添加if语句以检查r[0]的内容是否为空且r[1]不为空continue循环。

此外,您无需为参数编写列表中的每个项目。

您可以使用*r[starting:end index]将列表扩展为函数调用中的参数。如果需要元组,请使用tuple(r[start:end])作为参数