从os.Args读取时golang文件名过长错误[1]
我是golang的新手,使用从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 {
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我已经更新了代码,谢谢