首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >csv.writerow似乎无法写入行

csv.writerow似乎无法写入行
EN

Stack Overflow用户
提问于 2021-03-09 13:19:56
回答 1查看 76关注 0票数 1

我有一个脚本,可以将近80万行写到各种CSV文件中。

代码语言:javascript
运行
复制
for col in data:
        with open('output/{}.csv'.format(col), mode, encoding='utf-8', newline='') as f:
            writer = csv.writer(f, lineterminator = '\n')
            if mode == 'w':
                writer.writerow(headers)
            for row in data[col]:
                writer.writerow(row)

在现代机器上,这似乎是正确的工作和写所有的行。

然而,在旧机器上(使用机械硬盘),总共有35%到40%的行丢失。

这里是机器的列表,以及写入的总行(在815143行中):

  • Macbook pro osx 10.15(16 4gb内存,SSD) -815143
  • NVme 10 (32 4gb内存,NVme) - 815143
  • Windows 10 (4gb内存,硬盘)-
  • 10 (4gb内存,硬盘)- 501335

是我做错了什么事情导致了这一切吗?

还是写作失败需要考虑?使用csv.write

EN

回答 1

Stack Overflow用户

发布于 2021-03-12 17:09:05

造成此问题的原因似乎是Python的输出缓冲区。

https://blog.finxter.com/what-is-python-output-buffering-and-how-to-disable-it/

运行python时传递-u标志似乎解决了csv行未写入较慢计算机的问题。

例:

代码语言:javascript
运行
复制
python -u file.py argument

希望这能帮助其他遇到同样问题的人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66547685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档