代码之家  ›  专栏  ›  技术社区  ›  user8022517

使用writer在python3中逐个而不是一次写入csv行。writerows(读卡器)

  •  1
  • user8022517  · 技术社区  · 7 年前

    跳过标题前的行后,我正在保存csv文件:

                    print (latest_file)
                with open(latest_file, "r",encoding="utf8") as infile:
                    reader = csv.reader(infile)
                    for row in reader:
                        #look for 
                        if row[0] == 'date/time':
                            print (row)
                            break
                    else:
                        print("{} not found".format('name'))
                    with open("C:/s3/"+str(p.from_date)+'_'+str(p.to_date)+'_'+str(merchant["country"])+'_'+str(merchant["company"])+'_'+"payments.csv", "w", newline='') as outfile:
                        writer = csv.writer(outfile)
                        writer.writerow(row) # headers
    

    我正在将其余的行同时写入文件:

                        try:
                            writer.writerows(reader) # remaining rows
                        except Exception as e:
                            print (e)
    

    我想逐行写入,因为windows会引发以下错误: 'charmap' codec can't encode character '\x83' in position 142: character maps to <undefined>

    这似乎是windows的一个问题,由于这种情况很少发生,我更愿意将这些行逐个保存到文件中,以便只跳过有问题的行。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Sam Chats    7 年前
    for row in reader:  # the same reader used for reading
        try:
            writer.writerow(row) # remaining rows
        except Exception as e:
            print(row)
            print(e)
            print()