关于循环读取文件,更新mysql库记录


while True:
 for line in open(r'123123.txt'):
    line = line.strip('\n')
    if re.match('^ccccc: ', line) is not None:
        p1 = line.lstrip('ccccc::')
        sql.execute("update cookies set a=%s", (p1))
        conn.commit()
    if re.match('^bbbbb: ', line) is not None:
        p2 = line.lstrip('bbbbb:')
        sql.execute("update cookies set b=%s", (p2))
        conn.commit()
    if re.match('^aaaaa: ', line) is not None:
        p3 = line.lstrip('aaaaa:')
        sql.execute("update cookies set c=%s", (p3))
        conn.commit()

以上代码,会一次性更新库里的10条记录,库里有10条记录,我想每次更新第一条,如果,用where id的话,第二次读取这个文件的时候,就只更新一条了,123123.txt,每一次都会变的,能否做到,第一次循环读取123123.txt,替换第一条记录,第二次循环读取123123.txt,更新第 二条,以此类推?

具体要怎么实现,请老师明示?


n=0
while True:
    n=n+1 #本次要处理第n行
    i=0
    for line in open(r'123123.txt'):
        i=i+1 #当前是第i行
        if i<n: #当前行号<要处理的行号
            continue #跳过不处理
        else: #当前行号>=要处理的行号
            line = line.strip('\n')
            if re.match('^ccccc: ', line) is not None:
                p1 = line.lstrip('ccccc::')
                sql.execute("update cookies set a=%s", (p1))
                conn.commit()
            if re.match('^bbbbb: ', line) is not None:
                p2 = line.lstrip('bbbbb:')
                sql.execute("update cookies set b=%s", (p2))
                conn.commit()
            if re.match('^aaaaa: ', line) is not None:
                p3 = line.lstrip('aaaaa:')
                sql.execute("update cookies set c=%s", (p3))
                conn.commit()