如何命令CSV删除从这一行开始到那一行的thr行

2024-09-22 14:29:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在实现一个函数时遇到了问题

首先是片段:

    # 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)开始时遇到问题,因为它没有将roweans指向下一行

假设我有这样的行:

3423423

jalsjfslv

fbdbdf

bdfndf

32532532

我打算从jalsjfslv开始删除它和它后面的行,直到它指向32532532,在那里if(row[0].isdigit):应该工作,并停止循环,这样它就可以继续下一个gtin

我的代码不能与.nextnext(list, None)一起工作。有什么办法解决这个问题吗?真的卡住了,我想我错过了什么

谢谢你


Tags: csvinnoneoutputifislistnext
1条回答
网友
1楼 · 发布于 2024-09-22 14:29:22

最好的办法是完全避免使用下一个语句。下面的代码使用简单得多的概念来完成任务

# LOAD ROWS
import csv

csv_file = "aFile.csv"

# The above file is blank. 
found_list = ["3423423"]

eans = ["3423423", "jalsjfslv", "fbdbdf", "bdfndf", "32532532"]
clear = False

output = open(csv_file, 'w', newline='')
output.close()

for row in eans:
    if(row.isdigit()):
        clear = False
        output = open(csv_file, 'a', newline='')
        writer = csv.writer(output)
        writer.writerow([row])   
        output.close()
        print('True')
        gtin = row.split(";")
        gtin = gtin[0]
        if gtin in found_list:
            clear = True

    elif(clear == True):
        print('Non Digit = Iterate')

请注意,发布的代码中有相当一部分似乎与上下文无关。例如,前一个值的不断索引似乎阻碍了任务的完成。使用这个概念来适应您认为合适的代码

相关问题 更多 >