从os.Args读取时golang文件名过长错误[1]

从os.Args读取时golang文件名过长错误[1],go,Go,我是golang的新手,使用ioutil.ReadFile(os.Args[1])从cli获取文件路径,然后使用以下命令处理每一行: package main import ( "bufio" "fmt" "log" "os" ) func main() { file, err := os.Open(os.Args[1]) if err != nil {

我是golang的新手,使用
ioutil.ReadFile(os.Args[1])
从cli获取文件路径,然后使用以下命令处理每一行:

package main

import (
    "bufio"
    "fmt"
    "log"
    "os"
)

func main()  {
    
    file, err := os.Open(os.Args[1])
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()

    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        fmt.Println(scanner.Text())
    }

    if err := scanner.Err(); err != nil {
        log.Fatal(err)
    }
}
现在我可以在stdout获得输出。但最终也会出现以下错误:

msg:"BRUMBRUM";reference:cve,CVE-2007-2810;reference:blah;
msg:"WAKANDA";reference:cve,CVE-2007-2810;reference:blah; file name too long
exit status 1
我的文件路径输入是
data/srulz.tcl
. 仅供参考,错误消息不是文本文件的一部分

我需要知道这里哪里出了问题,如何改进

更新:

提供可复制代码

在这个谜团被解开之前,现在就去看看flag pkg

在第一行,, filePath,err:=ioutil.ReadFile(os.Args[1])


上述步骤将读取整个文件内容,并返回字节片和错误。filePath变量不会存储文件路径,而是以字节为单位存储文件内容。我想知道为什么您没有得到编译时错误,因为filepath变量是字节片,而os.Open(filepath)的os.Open参数是字符串。

也许错误消息是
数据/srulz.tcl
的一部分?或者错误来自您没有显示给我们的其他代码。该错误消息是您的程序实际打印的吗?该文本是否可能在文件中?错误消息不在文本文件中-最后一行不是空的。请提供一个。问题中的信息不足以重现错误。@icza我已经更新了代码,谢谢