所以我拿了一些公开的数据,看起来像这样——


这是文件


http://expirebox.com/download/b149b744768fb11aee9c5e26ad409bcc.html


,,,% of Total Expenditure,,,

Function Code,Type of Activity,Expenditure,Dollars/Student (ADA),"This District (ADA 49,497)",All Unified School Districts,Statewide Average

1000-1999ÊÊ,INSTRUCTIONÊÊ,"$249,397,226","$5,039",42%,62%,62%

1000,Instruction,"$247,472,790ÊÊ","$5,000",42%,48%,49%

1110,Special Education: Separate Classes,"$1,004,074",$20,N/A,N/A,N/A

1120,Special Education: Resource Specialist Instruction,"$781,629",$16,N/A,N/A,N/A

1130,Special Education: Supplemental Aids & Services in Regular Classrooms,"$46,747",$1,N/A,N/A,N/A

1180,Special Education:  Nonpublic Agencies/Schools (NPA/S),N/A,N/A,N/A,N/A,N/A

1190,Special Education:  Other Specialized Instructional Services,"$91,985",$2,N/A,N/A,N/A

1100-1199,Instruction - Special Education,"$1,924,436ÊÊ",$39,0%,14%,13%

它在一个csv中。


我试过这个代码


file, err := os.Open("expenses.csv")

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)

}

和这个


content, err := ioutil.ReadFile("expenses.csv")


lines := strings.Split(string(content), "\n")


fmt.Println(lines)


check(err)


dat, err := os.Open("expenses.csv")

check(err)


defer dat.Close()


reader := csv.NewReader(dat)

reader.LazyQuotes = true


reader.FieldsPerRecord = -1


rawCSVData, err := reader.ReadAll()


check(err)

fmt.Println(rawCSVData)


for _, each := range rawCSVData {

    fmt.Println(each)

}

检查在哪里


func check(e error) {

    if e != nil {

        panic(e)

    }

}

在这两种情况下,我都得到了这个结果 -


"Total Expenditures, All Activities",,"$594,788,926","$12,017",100%,100%,100%,1%15%,4%,4%AA,N/A,N/Anified School Districts,Statewide Average

而不是所有的行。


为什么我只看最后一行?