我有一个csv文件,其中有一些区域在什么时候没有任何内容,并且没有任何我想要删除的内容。问题是,我还有文件中的其他项目,我不想删除。
一个例子:
/abc, /, akaksdhfaiwe
/, /foo, /bar
我想成为:
/abc,, akaksdhfaiwe
, /foo, /bar
我该怎么做?我不能使用gsub('^ /',''),因为它会删除/ abc / foo / bar。而对于我的生活,我似乎无法找到“结束”。我希望\ Z会工作,没有运气。
任何参赛者?
到目前为止,我一直在使用更快的CSV进行大量的操作。
答案 0 :(得分:0)
你可以使用红宝石:
"/asdf /, /fdsa".gsub("/,", ",")
答案 1 :(得分:0)
如果您的文件不是那么大,那么您可以在清理它时将其啜饮到内存中,然后再将其写出来:
clean = [ ]
CSV.open(your_csv).each { |r| csv << r.map { |e| e.sub(/^\s*\/$/, '') } }
out = CSV.open(your_csv, 'wb')
clean.each { |r| out << r }
out.close
如果你以某种方式拥有一个令人难以置信的巨大的CSV文件,它不会同时存在于内存中:
out = CSV.open('tempfile.csv', 'wb')
CSV.open(your_csv).each { |r| out << r.map { |e| e.sub(/^\s*\/$/, '') } }
out.close
File.rename('tempfile.csv', your_csv)
要么转这个:
/abc, /, akaksdhfaiwe
/, /foo, /bar
到
/abc,"", akaksdhfaiwe
"", /foo, /bar