从该行开始到该行,如何命令CSV删除thr行

时间:2018-06-21 17:21:28

标签: python python-3.x csv

我在实现功能时遇到麻烦。

首先这是代码段:

    # LOAD ROWS
    for row in eans:
        gtin_row = row[0]
        if(gtin_row[0].isdigit()):
            print('True')
            gtin = row[0].split(";")
            gtin = gtin[0]
            # DIGIT IS FOUND IN row[0] so START at the next row
            next(eans,None)

           # IF ITEM IS FOUND on Found_list
            if gtin in found_list:
                # STARTING FROM row[0] I mentioned earlier until it finds another row that starts with a digit, delete every row

                if(row[0].isdigit):
                    break
                else:

                    print('Non Digit = Iterate')
                    output = open(csv_file, 'wb')
                    writer = csv.writer(output)
                    writer.writerow(row)                    
                    output.close()
                    next(eans,None)
                    continue

我正在从一个csv加载一个列表,我评论了代码应该如何工作,而next()却不起作用。我在从next(eans,None)开始时遇到了麻烦,因为它没有将row指向下一行。

假设我有这样的行:

  

3423423

     

jalsjfslv

     

fbdbdf

     

bdfndf

     

32532532

我打算从jalsjfslv开始删除它及其随后的行,直到它指向32532532,其中if(row[0].isdigit):应该起作用并停止循环,以便它可以与下一个{ {1}}

我的代码不能与gtin.next一起使用,如何解决此问题?我想我真的很想念东西。

谢谢!

1 个答案:

答案 0 :(得分:0)

最好的选择是避免完全使用下一条语句。以下代码使用简单得多的概念来完成任务。

{{1}}

请注意,发布的很多代码似乎与上下文无关。例如,先前值的恒定索引似乎阻碍了任务的完成。使用此概念适合您认为合适的代码。