朱莉娅 - 重写CSV

时间:2016-10-09 09:51:13

标签: csv julia

在这里完成Julia新手。
我想对CSV进行一些处理。有点像:

using CSV

in_file = CSV.Source('/dir/in.csv')
out_file = CSV.Sink('/dir/out.csv')

for line in CSV.eachline(in_file)
    replace!(line, "None", "")
    CSV.writeline(out_file, line)
end

这是伪代码,这些不是现有的功能 惯用,我应该迭代1:CSV.countlines(in_file)吗?做一个while并检查一下吗?

1 个答案:

答案 0 :(得分:4)

如果您要做的只是替换行中的字符串,则不需要任何CSV解析实用程序。您所要做的就是逐行读取文件,替换和写入。所以:

infile = "/path/to/input.csv"
outfile = "/path/to/output.csv"
out = open(outfile, "w+")
for line in readlines(infile)
     newline = replace(line, "a", "b")
     write(out, newline)
 end
 close(out)

这将复制您在问题中的伪代码。

如果您需要按字段解析和读取csv字段,请使用base中的readcsv函数。

data=readcsv(infile)
typeof(data) #Array{Any,2}

这会将文件中的数据作为二维数组返回。您可以按照您想要的任何方式处理此数据,并使用writecsv函数将其写回。

for i in 1:size(data,1) #iterate by rows 
      data[i, 1] = "This is " * data[i, 1]  # Add text to first column
end
writecsv(outfile, data)

这些功能的文档: