parse error on line 1, column 4: bare “ in non-quoted-field

2023-05-16

golang报错:

parse error on line 1, column 4: bare " in non-quoted-field 

可能的原因是csv是windowns 导出的,编码方式是UTF-8 BOM 方式。
可以通过跳过BOM解决:

import (
    "os"
    "log"
)

func main() {
    fd, err := os.Open("filename")
    if err != nil {
        log.Fatal(err)
    }
    defer closeOrDie(fd)
    bom := [3]byte
    _, err = io.ReadFull(fd, bom[:])
    if err != nil {
        log.Fatal(err)
    }
    if bom[0] != 0xef || bom[1] != 0xbb || bom[2] != 0xbf {
        _, err = fd.Seek(0, 0) // Not a BOM -- seek back to the beginning
        if err != nil {
            log.Fatal(err)
        }
    }
    // The next read operation on fd will read real data
    // ...
}

完成的例子:

package main

import (
	"encoding/csv"
	"io"
	"log"
	"monorepo/service/autotable/common/logger"
	"os"
)

func main() {
	fileName := "/mnt/result.csv"
	// 准备读取文件
	fs, err := os.OpenFile(fileName, os.O_RDWR|os.O_CREATE, os.ModePerm)
	if err != nil {
		logger.Log.Errorf("can not open the file, err is: %s", err)
	}
	defer fs.Close()

	bom := make([]byte, 3)
	_, err = io.ReadFull(fs, bom[:])
	if err != nil {
		log.Fatal(err)
	}
	if bom[0] != 0xef || bom[1] != 0xbb || bom[2] != 0xbf {
		_, err = fs.Seek(0, 0) // Not a BOM -- seek back to the beginning
		if err != nil {
			log.Fatal(err)
		}
	}

	content := make([][]string, 0)
	r := csv.NewReader(fs)

	//针对大文件,一行一行的读取文件
	for {
		row, err := r.Read()
		if err != nil && err != io.EOF {
			logger.Log.Infof("can not read, err is: %s", err)
			continue
		}
		if err == io.EOF {
			break
		}
		content = append(content, row)
	}

	logger.Log.Infof("len:%s", len(content))
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

parse error on line 1, column 4: bare “ in non-quoted-field 的相关文章

  • 如何在 MATLAB 中保存带有封闭框区域的绘图?

    保存绘图时 如何关闭顶部和右侧带有黑线的绘图区域 我不知道如何制作或如何搜索 如果有人知道请告诉我 例如 请看下面所示的图 其中缺少线条 在保存图像之前 请使用box命令 这会将您的绘图包围起来 使其周围有黑框 如您在示例图像中指定的那样
  • OpenGL ES iPhone - 绘制抗锯齿线

    通常 您会使用类似以下内容 glBlendFunc GL SRC ALPHA GL ONE MINUS SRC ALPHA glEnable GL BLEND glEnable GL LINE SMOOTH glLineWidth 2 0f
  • readlines 给了我额外的换行符 python2.6.5

    我对以下代码有问题 file open file txt r lines file readlines print lines 0 print lines 1 print lines 2 file close 这段代码给了我行之间的换行符
  • 在 Notepad++ 中的匹配模式后添加新行

    我有一个 csv 文件 现在我需要以另一种形式导入它 我想在特定模式后有一个换行符 r n 所有模式看起来都是这样的 true or false int number between 0 and 100 decimal number wit
  • 如何使用 d3.js 为线条添加动画?

    所以我的线从图表的一侧延伸到另一侧 但它并没有真正通过每个数据点进行动画处理 我认为我必须在某处添加一个循环 这是相关代码 任何帮助将不胜感激 assign start coordinates for each piece of data
  • 如何在 matlab 中使用 theta/rho 数据绘制直线

    如题 我只有 theta rho 数据 直线方程为 x cos theta y sin theta rho 如何在matlab中用这些数据绘制线 有没有输入为 theta 和 rho 的函数 thanks 只需使用一些简单的代数即可了解如何
  • java中如何处理具有不同行分隔符的文件?

    我有一个巨大的文件 超过 3GB 其中包含以下格式的单个长行 1243 818 9287 543 然后我要分析的数据用 分隔 我的想法是更改默认的行尾 Java 使用的字符设置 我正在尝试使用 System setProperty line
  • 如何在Java中绘制有向箭头线?

    我想通过Java画一条有向箭头线 目前我正在使用java awt Line2D Double类画一条线 g2 setStroke new BasicStroke 2 0f BasicStroke CAP BUTT BasicStroke J
  • 使用 iText 在横向模式下绘制线条

    这是我用来画线的代码 double lineArray annotation getAsArray PdfName L asDoubleArray double x1 lineArray 0 rect getAsNumber 0 doubl
  • eclipse java代码显示行号

    我需要在 eclipse 上安装哪些插件才能使 java 文件显示行号 在 xml html 上显示行号怎么样 还有一种更简单的方法 只需右键单击装订线 代码所在的编辑器窗口的左边框 并启用它们 那里有一个特定的选项
  • 在 NSView-drawRect: 方法中画线的首选/推荐方法是什么?

    我在 Cocoa 的 NSView 级别找不到任何线条绘制原语 我唯一发现的是NSBezierPath 这是首选方式吗 还是还有其他我没发现的方法 NSBezierPath正是您应该使用的 如果您只想从一点到另一点绘制一条直线 请使用类方法
  • 裸字符串的数组等效项

    我可以毫无问题地做到这一点 const char foo This is a bare string 我想要的是能够对数组做同样的事情 const int bar 1 2 3 显然该代码无法编译 但是是否有某种与裸字符串等效的数组 你不能这
  • 所有案例均涵盖 Bresenham 的直线算法 [已关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我需要检查一行中的所有像素 因此我使
  • OpenGL:在两个元素之间画线

    我需要在我创建的两个网格之间画一条线 每个网格都与不同的模型矩阵相关联 我一直在思考如何做到这一点 我想到了 glMatrixMode GL MODELVIEW glLoadMatrixf first object model matrix
  • 错误:警告:从空值创建默认对象

    我第一次发帖 我希望有人能帮助我解决周三出现在我的网站上的这个错误 我不知道如何纠正它 因为我从未接触过 php 文件 如果我能得到一些帮助 我将非常感激 出现错误的网站位于页面顶部 http www inkedkoidesigns ca
  • 如何删除文件中的第一行?

    我无法搜索特定的字符串 因为它们都非常相似 但我想要一些简单的方法来删除文件中的前 4 行 它们的长度也都是可变的 我考虑过 Perl 这一切似乎比我想象的要难 但如果可能的话 我想用 Perl AWK 或 shell 命令来完成 有人有一
  • 如何使用间距、制表符或填充来对齐列中的内容?

    我正在尝试创建一个看起来像这样的pdf but when i try string padding it looks like this in pdf file 这是我尝试过的 C 代码的一部分 myExcelData 是从 Excel 文
  • PHP 脚本抓取整行

    感谢您花时间阅读本文 无论内容的质量如何 我都会感激每一个回复 我正在尝试创建一个在文本文件中搜索特定文本的 php 脚本 用户在 HTML 表单中输入特定文本 PHP 脚本应在文本文件中搜索该特定文本 HTML表单的输入字段的值为 use
  • 如何使用Matplotlib在图形中间绘制轴

    我想画一条平行于 y 轴且位于 x 轴中间的静态垂直线 当图中平移时 这条线不应移动 我的目标是让图形中间的这条垂直线作为参考线 我将有一些其他数字 它们表示取决于 x 轴中间的 x 值的数据 该线的端点坐标在轴坐标中为 0 5 0 和 0
  • Java - 点在线

    我如何找出点 x y 是否位于其他两个点之间创建的线上 我尝试了这个 但似乎有些问题 因为我没有得到我应该得到的结果 public boolean intersects Point k Point z Point p Line2D line

随机推荐