使用writer.writerows(reader)在python3中逐个编写csv行而不是一次写入csv行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用writer.writerows(reader)在python3中逐个编写csv行而不是一次写入csv行相关的知识,希望对你有一定的参考价值。

我在跳过标题之前的行后保存了一个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问题,因为它很少发生,我宁愿将行逐个保存到文件中,因此只会跳过有问题的行。

答案
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()

以上是关于使用writer.writerows(reader)在python3中逐个编写csv行而不是一次写入csv行的主要内容,如果未能解决你的问题,请参考以下文章

python 读取csv文件

当标头是动态的时,避免批量数据导出到csv

从 itertools 模块导入 izip 在 Python 3.x 中会产生 NameError

使用 Python 的 csv.reader 处理转义引号

怎么在服务器端使用Adobe reader 在线阅读PDF文件时候屏蔽掉打印、下载工具栏

Reader 和 InputStream 有啥区别?