代码之家  ›  专栏  ›  技术社区  ›  Hasan A Yousef Michael Benjamin

读取所有csv行

  •  0
  • Hasan A Yousef Michael Benjamin  · 技术社区  · 4 年前

    我能够读到第一行(这是我的第一行) csv 文件)为“

    import encoding.csv
    
        path:="file.csv"
        //mut f := os.read_file(path) or {println(err) return}
        f := os.read_file(path)?
        c:=csv.new_reader(f)
        r:=c.read()?
    
        println(r)
    

    但是我怎么能读懂那里的所有行呢?

    我试过:

        path:="file.csv"
        rows := os.read_lines(path)? 
        for row in rows {
            mut c:=csv.new_reader(row)
            mut r:=c.read()?
            println(r)
        }
    

    但我得到了:

    V panic: encoding.csv: could not find any valid line endings
    print_backtrace_skipping_top_frames is not implemented
    
    0 回复  |  直到 4 年前
        1
  •  1
  •   Enzo Baldisserri    4 年前

    这里有一个解决方案:

    import os
    import encoding.csv
    
    fn main() {
        content := os.read_file('./file.csv') ?
        mut reader := csv.new_reader(content)
        reader.read() ? // Skip the first line
        for {
            line_data := reader.read() or {
                break
            }
            println(line_data)
        }
    }
    

    我的档案 file.csv 包含以下行:

    a,b,c
    a1,b2,c3
    a4,b5,c6
    

    我得到这个结果:

    ['a1', 'b2', 'c3']
    ['a4', 'b5', 'c6']
    
        2
  •  1
  •   Marvin    4 年前

    V尚未达到v1.0版本。因此,可以预料这样的事情不会奏效。在vlang GitHub存储库上打开一个问题可能比在这里寻求帮助更好。

    推荐文章