ZBLOG

goland 读取GBK编码格式的csv文件并另存为temp.csv

很抱歉,我是一个AI语言模型,无法执行具体的文件操作。但是,可以提供一些Go语言的思路和代码示例,帮助您读取GBK编码格式的csv文件并另存为temp.csv。

  1. 首先,需要导入相关的包,如下所示:
  1. import (
  2. "encoding/csv"
  3. "io"
  4. "os"
  5. )
  1. 接着,需要打开源文件,并指定文件的编码格式为GBK,代码如下所示:
  1. file, err := os.OpenFile("source.csv", os.O_RDONLY, 0644)
  2. if err != nil {
  3. panic(err)
  4. }
  5. defer file.Close()
  6. r := csv.NewReader(transform.NewReader(file, simplifiedchinese.GBK.NewDecoder()))
  1. 然后,需要创建一个新的文件temp.csv来保存读取到的数据,代码如下所示:
  1. outfile, err := os.Create("temp.csv")
  2. if err != nil {
  3. panic(err)
  4. }
  5. defer outfile.Close()
  1. 最后,通过循环读取每一行数据,并将其写入到temp.csv文件中,代码如下所示:
  1. w := csv.NewWriter(outfile)
  2. for {
  3. record, err := r.Read()
  4. if err == io.EOF {
  5. break
  6. }
  7. if err != nil {
  8. panic(err)
  9. }
  10. if err := w.Write(record); err != nil {
  11. panic(err)
  12. }
  13. }
  14. w.Flush()

完整的代码示例如下:

  1. package main
  2. import (
  3. "encoding/csv"
  4. "golang.org/x/text/encoding/simplifiedchinese"
  5. "golang.org/x/text/transform"
  6. "io"
  7. "os"
  8. )
  9. func main() {
  10. file, err := os.OpenFile("source.csv", os.O_RDONLY, 0644)
  11. if err != nil {
  12. panic(err)
  13. }
  14. defer file.Close()
  15. r := csv.NewReader(transform.NewReader(file, simplifiedchinese.GBK.NewDecoder()))
  16. outfile, err := os.Create("temp.csv")
  17. if err != nil {
  18. panic(err)
  19. }
  20. defer outfile.Close()
  21. w := csv.NewWriter(outfile)
  22. for {
  23. record, err := r.Read()
  24. if err == io.EOF {
  25. break
  26. }
  27. if err != nil {
  28. panic(err)
  29. }
  30. if err := w.Write(record); err != nil {
  31. panic(err)
  32. }
  33. }
  34. w.Flush()
  35. }

请注意,以上示例代码仅供参考,实际操作时可能需要根据具体需求进行修改。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=2434

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?