前言
读取url中的csv文件信息
错误写法
func main() {
str:="xxx/某大赛领奖名单.csv"
resp,e:=http.Get(str)
defer resp.Body.Close()
if e!=nil{
errorx.Wrap(e).Error()
return
}
excelFile,createErr:=os.Create("test.csv")
if createErr!=nil{
errorx.Wrap(createErr).Error()
return
}
body,readErr:=ioutil.ReadAll(resp.Body)
s:=byteString(body)
fmt.Println(s) //这里发现是乱码的
if readErr!=nil{
errorx.Wrap(readErr).Error()
return
}
num,writeErr:=excelFile.Write(body)
if writeErr!=nil{
errorx.Wrap(writeErr).Error()
return
}
fmt.Println(num)
if e:=excelFile.Close(); e!=nil{
errorx.Wrap(e).Error()
return
}
strs,csvErr:=ReadCSV("test.csv") //发现在文件管理器中只有用excel打开才是正常的
if csvErr!=nil{
fmt.Println(errorx.Wrap(csvErr).Error())
}
fmt.Println(strs)
}
正确写法
func main() {
resp, e := http.Get("xxx/某大赛获奖名单.csv")
if e != nil {
panic(e)
}
if resp == nil {
panic("resp nil")
}
if resp.Body == nil {
panic("body nil")
}
buf, e := ioutil.ReadAll(resp.Body)
if e != nil {
panic(e)
}
r := csv.NewReader(bytes.NewReader(buf))
records, e:= r.ReadAll()
if e!=nil {
panic(e)
}
fmt.Println(records)
}