返回顶部
首页 > 资讯 > 后端开发 > GO >确定 Golang 中 CSV 行有多少字节
  • 148
分享到

确定 Golang 中 CSV 行有多少字节

2024-02-06 05:02:16 148人浏览 薄情痞子
摘要

问题内容 我有一个 test.csv ,我将逐行读取它并确定每行中有多少字节。 这应该低于 37 个字节,因为我在 windows 上,前两行有 \r\n 总共添加了 4 个字节。 f

问题内容

我有一个 test.csv ,我将逐行读取它并确定每行中有多少字节。

这应该低于 37 个字节,因为我在 windows 上,前两行有 \r\n 总共添加了 4 个字节。

foo,bar,baz
100,200,300
400,500,600

我想使用 csv.NewReader() 简单地确定每行中有多少字节。但是,我知道在下面的代码中进行字节计数时,csv.Reader 不会计算每行中的逗号和 \n

我是否应该为每行中的逗号数+行数添加一些数学运算,为 \r\n -1 为最后一行添加 2 个字节,因为它没有 \r\n?这感觉有点老套,所以我宁愿看看是否有更好的解决方案来解决我的字节计数问题。

我的代码:

package main

import (
    "encoding/csv"
    "fmt"
    "io"
    "log"
    "os"
)

func main() {
    file, err := os.Open("test.csv")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()

    fileInfo, err := file.Stat()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("file total bytes is %d\n", fileInfo.Size())

    // init reader
    reader := csv.NewReader(file)

    // extract the header
    headers, err := reader.Read()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("headers are: %+v\n", headers)

    byteCounter := 0
    for {
        // if we reached end of file, stop
        if err == io.EOF {
            break
        }

        // read a record
        record, err := reader.Read()
        if err != nil {
            log.Fatal(err)
        }
        // loop through each record and count how many bytes
        for _, item := range record {
            byteCounter += len(item)
            fmt.Printf("record is %d bytes\n", len(item))
        }
        fmt.Println("total bytes so far is: ", byteCounter)

    }
}


正确答案


使用 Reader.InputOffset 获取文件中的当前位置:< /p> BD44F3686574B2610B9F6F11A1F9CFEF

https://www.PHP.cn/link/e2c2ff9c7fb57db574e461fbe467d84e

要获取每行的字节数,请减去之前的偏移量。

prevOffset := reader.InputOffset()

for {
    ...
    // read a record
    _, err := reader.Read()
    ...
    fmt.Println("line length is: ", reader.InputOffset()-prevOffset)
    prevOffset = reader.InputOffset()

}

Https://www.php.cn/link/501e3f8a108d7ab9335ceecd363D113d

以上就是确定 golang 中 CSV 行有多少字节的详细内容,更多请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: 确定 Golang 中 CSV 行有多少字节

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

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

猜你喜欢
  • 确定 Golang 中 CSV 行有多少字节
    问题内容 我有一个 test.csv ,我将逐行读取它并确定每行中有多少字节。 这应该低于 37 个字节,因为我在 Windows 上,前两行有 \r\n 总共添加了 4 个字节。 f...
    99+
    2024-02-06
  • JavaScript中整数有多少个字节
    这篇文章主要介绍了JavaScript中整数有多少个字节,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 在Jav...
    99+
    2024-04-02
  • c++中int占多少字节
    c++ 中 int 类型占用的字节数取决于系统的体系结构:32 位体系结构:4 个字节64 位体系结构:8 个字节 C++ 中 int 占多少字节 int 是 C++ 中的基本整数类型...
    99+
    2024-05-12
    c++
  • linux中short的字节是多少
    这篇“linux中short的字节是多少”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux中short的字节是多少”文...
    99+
    2023-07-02
  • java中long类型占多少字节
    所谓的占用字节数 就是申请内存的时候所占的空间大小。long 8字节 最小值是 -9,223,372,036,854,775,808(-2^63);最大值是 9,223,372,036,854,775,807(2^63 -1);...
    99+
    2019-09-27
    java入门 long 字节 java
  • python中浮点数占多少字节
    今天就跟大家聊聊有关python中浮点数占多少字节,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python有哪些常用库python常用的库:1.requesuts;2.scrapy...
    99+
    2023-06-14
  • php中一个汉字是多少个字节
    小编给大家分享一下php中一个汉字是多少个字节,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在php中对于中文字符,若使用GBK、Big-5版本,每个中文字符相当于2个字节;若使用UTF-8版本,每个中文字符相当于3个字节...
    99+
    2023-06-25
  • Java中new Object()占用多少个字节
    Java中new Object()占用多少个字节?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。对象的指向先来看一段代码:package com.zwx.jvm;pub...
    99+
    2023-06-06
  • c语言中int占用多少字节
    在c语言中,int型变量所占字节数由编译器的实现决定:32位编译器中通常占用4个字节(32位);64位编译器中通常占用8个字节(64位)。 C语言中int占用多少字节 在C语言中,in...
    99+
    2024-05-12
    c语言 跨平台应用
  • 计算机中1mb指的是多少字节
    这篇文章给大家分享的是有关计算机中1mb指的是多少字节的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1MB等于2^20字节。MB,全称“MByte”,计算机中的一种储存单位。字节是计算机信息技术用于计量存储容量的...
    99+
    2023-06-15
  • PHP中的int类型占用多少字节?
    在编写PHP程序时,经常需要使用int类型来存储整数数据。但是,不同的编程语言在存储数据时,占用的字节数可能会有所不同。因此,有些PHP程序员可能会问:PHP中的int类型到底占用多少个字节?答案是:PHP中的int类型占用4个字节,即32...
    99+
    2023-05-14
    int php
  • 确定Golang数据库连接池的最佳大小是多少?
    Golang数据库连接池设置多少合适? 随着互联网的发展和应用程序的不断增多,数据库连接的管理变得尤为重要。在Golang中,使用数据库连接池是一种常见的处理方式。数据库连接池允许应用程序从连接池中获取连接,...
    99+
    2024-01-29
    数据库 Golang 连接池
  • java中的数据类型各占多少字节(位)
    java中有8种基本数据类型:byte、int、short、long、boolean、char、float、double对应的类为:Byte、Int、Short、Long、Boolean、Charecter、Float、Double其中:b...
    99+
    2019-01-10
    java入门 java 数据类型 字节
  • c语言中char类型数据占多少个字节
    本篇内容介绍了“c语言中char类型数据占多少个字节”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!c语言中char类型数据占1个字节,因为c...
    99+
    2023-06-21
  • C语言中字符串abc在内存占用多少字节数
    本篇内容介绍了“C语言中字符串abc在内存占用多少字节数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!字符串abc在内存占用的字节数是4,因...
    99+
    2023-06-26
  • JDBC中有多少种锁定系统
    在JDBC中,有以下几种锁定系统:1. 乐观锁定(Optimistic Locking):乐观锁定是指在读取数据时不会进行加锁,当更...
    99+
    2023-10-10
    JDBC
  • JDBC中有多少种锁定系统?
    您可以锁定一条记录、一组记录、数据库表、表空间等,并且当我们这样做时,我们无法更改锁定的值。以下是 JDBC 中的锁定类型:行锁和键锁:它们用于锁定特定行。使用这些锁,您可以实现并发。页面锁:这些用于锁定页面。如果应用此功能,每当行的内容发...
    99+
    2023-10-22
  • 一个字符串中的字符有多少个
    这篇文章给大家介绍一个字符串中的字符有多少个,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。依照Java的文档, Java中的字符内部是以UTF-16编码方式表示的,最小值是 \\u0000 (0),最大值是\\ufff...
    99+
    2023-06-16
  • 一个Java字符串中有多少个字符
    本篇内容主要讲解“一个Java字符串中有多少个字符”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“一个Java字符串中有多少个字符”吧!依照Java的文档, Java中的字符内部是以UTF-16编...
    99+
    2023-06-16
  • go语言中关键字有多少个
    go语言中关键字有25个,分别有:break(退出循环)、default(选择结构默认项)、func(定义函数)、interface(定义接口)、case(选择结构标签)、const(定义常量)、continue、select、chan、c...
    99+
    2023-05-14
    go语言 Golang
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作