返回顶部
首页 > 资讯 > 后端开发 > GO >如何解决写入 CSV 时出现“短写入”错误
  • 275
分享到

如何解决写入 CSV 时出现“短写入”错误

2024-04-04 23:04:55 275人浏览 安东尼
摘要

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何解决写入 CSV 时出现“短写入”错误》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何解决写入 CSV 时出现“短写入”错误》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习

问题内容

我一直遇到这个问题,我似乎无法弄清楚发生了什么。我有将一些信息附加到 csv 的代码。该信息来自多个线程,csv 记录时间。

在程序执行过程中的某个时刻,代码将开始输出“short write”,而不是写入 csv。

打印要输出的数据,“好”写和“短”写似乎没有区别,一旦“短写”错误停止,它就会继续,直到程序重新启动。

每次需要写入 csv 时都会调用此代码。

output := []string{time.message, strconv.fORMatint(time.duration, 10)}
        fmt.println(output)
        err := writer.write(output)
        if err != nil {
            fmt.println("an error encountered ::", err)
            fmt.println("writer.write error")
            logmessage(err.error())
        }
        writer.flush()

看看我的输出,这是它开始短写的点。

[message1 21]
[message2 207]
[message3 79]
an error encountered :: short write
writer.write error
short write

这是我在 csv 中的输出

message1,21
message2,207
ssage2,207

所以看起来短写是来自第二行,但为什么它把我的消息写了两次,为什么它是“短写”消息?有数百条成功消息,然后错误似乎突然发生。

查看代码,调用 csv 编写器功能的位置仅命中一次,因此我真的很困惑为什么会发生这种情况。


解决方案


应用程序在 writer 上存在数据争用。使用 sync.Mutex 确保一次只有一个 Goroutine 访问 writer。

mu.lock() // <-- lock to prevent concurrent write and flush.
output := []string{time.message, strconv.formatint(time.duration, 10)}
fmt.println(output)
err := writer.write(output)
if err != nil {
  fmt.println("an error encountered ::", err)
  fmt.println("writer.write error")
  logmessage(err.error())
}
writer.flush()
mu.unlock() // <-- unlock.

在应用程序上运行 race detector 并修复任何报告的问题。

我猜您正在使用带缓冲区的编写器(例如 bufio)。当一个 groutine 正在向缓冲区写入数据而另一个正在尝试刷新时,会发生此错误。

只需在关键部分添加一个储物柜即可。

mu.Lock()
// critical section
mu.Unlock()

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持编程网!更多关于golang的相关知识,也可关注编程网公众号。

您可能感兴趣的文档:

--结束END--

本文标题: 如何解决写入 CSV 时出现“短写入”错误

本文链接: https://lsjlt.com/news/596007.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何解决写入 CSV 时出现“短写入”错误
    今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何解决写入 CSV 时出现“短写入”错误》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,...
    99+
    2024-04-04
  • 在python中写入文件时出现错误如何解决
    在python中写入文件时出现错误如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数...
    99+
    2023-06-14
  • 写入服务器时出错
    很抱歉听到您在写入服务器时遇到问题。为了帮助您解决问题,我需要更多的详细信息。请提供以下信息:1. 使用的编程语言和框架是什么?例如...
    99+
    2023-09-26
    服务器
  • Java如何写入写出Excel
    这篇文章将为大家详细讲解有关Java如何写入写出Excel,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数据原来是这样的,不同的实验有一个专门的文件夹,实验名的文件夹下有不同班级的文件夹,班级文件夹下有该...
    99+
    2023-05-30
    java excel
  • python如何把数据写入csv
    要将数据写入CSV文件,可以使用Python的CSV库。下面是一个简单的示例,演示了如何将数据写入CSV文件:```pythonimport csvdata = [['Name', 'Age', 'City'],['John', 28,...
    99+
    2023-08-11
    python
  • UTL_FILE.PUT写入txt时超过32k报ORA-29285: 文件写入错误
    将表中clob字段生成txt 文件,发现只要超过32k写入就报错。 使用UTL_FILE.PUT的方式循环将buffer写入文件,但发现一旦某个字段超过32K,在刚好超过32k便报出以上ora0...
    99+
    2024-04-02
  • 在java中写入管道流上出现报错如何解决
    本篇文章为大家展示了在java中写入管道流上出现报错如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. ...
    99+
    2023-06-14
  • php百万数据如何写入csv
    这篇文章主要介绍了php百万数据如何写入csv的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php百万数据如何写入csv文章都会有所收获,下面我们一起来看看吧。需求:百万数据写入 csv。框架:N 多年前老框架...
    99+
    2023-07-04
  • 如何将 gota 数据框写入 csv?
    对于一个Golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《如何将 gota 数据框写入 csv?》,主要介绍了,希望对大家的知识积累...
    99+
    2024-04-05
  • python 写入csv乱码问题解决方法
    需求背景 最近为公司开发了一套邮件日报程序,邮件一般就是表格,图片,然后就是附件。附件一般都是默认写到txt文件里,但是PM希望邮件里的附件能直接用Excel这种软件打开,最开始想保存为Excel,但是一...
    99+
    2022-06-04
    乱码 解决方法 python
  • java导入程序出现import错误如何解决
    如果在Java程序中导入语句出现错误,可以尝试以下解决方法:1. 检查导入语句是否正确:确保导入语句的语法正确,包括正确的包名和类名...
    99+
    2023-09-15
    java
  • WIN XP出现“延缓写入失败”错误的原因和解决办法
     问:电脑用的是双硬盘,最近系统任务栏弹出一个错误提示信息,提示延缓写入失败,然后在我的电脑中,D盘和G盘消失了。重启后,所有分区都可见,但对D盘或G盘中的数据进行操作时,系统就会假死、蓝屏重启。请问这是为什么...
    99+
    2023-05-25
    原因 解决办法 WIN XP
  • Jupyter Notebook读入csv文件时出错的解决方案
    问题 jupyter notebook读入csv数据时出现错误 “SyntaxError: (unicode error) ‘unicodeescape' codec can't ...
    99+
    2024-04-02
  • Excel写入数据报错“运行时错误3004”
    运行时错误3004通常是由于访问被保护的单元格或工作表而导致的。下面是一些解决办法:1. 检查要写入数据的单元格或工作表是否被保护。...
    99+
    2023-08-19
    Excel
  • 载入java vm时出现错误
    载入java vm时出现错误这个问题一般是JAVA问题,检查一下控制面板,程序卸载里有没有其它版本的JAVA,如有,可以先将其卸载试试。然后可以检查,环境变量中你是否有设置过JAVA环境变量,如有,将其删除。之后重新配置JAVA的环境变量:...
    99+
    2021-10-23
    java基础 java vm
  • php能写入英文不能写入中文如何解决
    本篇内容主要讲解“php能写入英文不能写入中文如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php能写入英文不能写入中文如何解决”吧!php能写入英文不能写入中文的解决办法:1、在PHP...
    99+
    2023-07-05
  • ps安装无法写入注册表值错误160如何解决
    这篇文章主要介绍了ps安装无法写入注册表值错误160如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ps安装无法写入注册表值错误160如何解决文章都会有所收获,下面我们一...
    99+
    2023-03-23
    ps
  • 如何避免PHP写入txt文件时出现乱码
    在PHP中,当我们将文本数据写入到txt文件时,有时候会出现乱码的问题。这种问题通常是因为编码不一致导致的,下面给出一些具体的方法和代码示例,来避免PHP写入txt文件时出现乱码问题。...
    99+
    2024-04-02
  • python中如何读取和写入CSV文件
    本文小编为大家详细介绍“python中如何读取和写入CSV文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“python中如何读取和写入CSV文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。CSV(Comma...
    99+
    2023-07-04
  • MySQL导入csv格式出错怎么解决
    在MySQL中导入csv格式文件时出错通常是由于文件格式不正确或者数据不匹配导致的。以下是一些常见的解决方法: 确保csv文件的...
    99+
    2024-04-09
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作