go - 在栏位名称前撷取csv空间

标签 go

我有一个奇怪的问题,我有这个CSV

NAME,AGE,CITY
Bob,12,London
James,18,London
Joe,55,Manchester
Simon,21,Manchester
和下面的代码。但是,当我提取文件时,它在第一个字段名称之前带有一个空格(如下所示)
enter image description here
下面我尝试了字符串修剪和字符串替换,但是都没有用。有人有什么想法吗?
func main() {
    var files []string

    root := "C:\\Users\\kiera\\OneDrive\\Documents\\golang\\df\\filewalk\\csvs"
    
    err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
        files = append(files, path)
        return nil
    })
    if err != nil {
        panic(err)
    }
    for _, file := range files {
        //open the file
        openfile, _ := ioutil.ReadFile(file)

        //cast byte slice as string
        contents := string(openfile)

        //get rid of whitespace
        contents = strings.TrimSpace(contents)
        contents = strings.ReplaceAll(contents, " NAME", "NAME")
        fmt.Println(contents)
    }
}

最佳答案

如果您将文件另存为utf-8,则使用no​​tepad++,notepad,netbeans等
它在文件的开头添加了隐藏字符(BOM)。
只需更改您的IDE或禁用BOM。
例如在notepad++中,您可以按照以下指示操作https://www.ibm.com/support/pages/how-remove-bom-any-textxml-file
通常,此问题发生在Windows中。

关于go - 在栏位名称前撷取csv空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62733498/

相关文章:

go - 使用反射动态将结构字段设置为 slice 值

git - 如何组织具有 vendor 依赖项的 Go 项目?

go - 如何在Goroutine中处理错误

go - 如何将自定义类型转换为字符串?

go - Sarama 无法生成 Amazon MSK 版本 2.3.1 的消息

oracle - 从 Go 应用程序到 Oracle 数据库的 SQL 查询引发错误?

xml - 如何使用 xml golang std 查找已知属性和 token 的值。库

go - 如何确保按 channel 生产和消费数据是安全的

go - 如何生成struct lowerCamelCase json标签

go - golang 是否可以接受优雅的关闭写入并发模式?