- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在从 Ruby 生成 CSV 文件,接收数据的系统无法接受底部的空行。
但是,在我附加完所有行(以 CRLF 结尾)后,最后一行仍然有 CFLF,因此接收系统认为有一个空白的 lasy 行。
我通过执行此(hackish)代码来打开和截断文件解决了这个问题:
size = File.size(filename)
File.truncate(filename, size-3)
我是否缺少 ruby CSV 中的某些功能,如果它是最后一行则不添加 CRLF?
我编写 CSV 的代码是:
csv = CSV.open(filename, "w", {:row_sep => "\r\n"})
.. code to create an array of cols ..
csv << cols
我尝试将其转换为使用字符串,而不是文件。但是我没有成功。我一直在使用 << 运算符时出错。
更新:原来我问错了问题......
这已经有一段时间了,但我终于弄清楚发生了什么事。我上传的主机系统也可以处理文件末尾的换行符——这是 Ruby CSV 放入了错误的换行符:\r\r\n 而不是\r\n!如果我写成文本文件,它就是这样做的。如果我写成二进制文件,问题就解决了。
以防其他人看到同样的问题,这是我的 Ruby:
csv = CSV.open(filename, "w", {:row_sep => "\r\n"}) # actually writes \r\r\n
二进制模式修复它:
csv = CSV.open(filename, "wb", {:row_sep => "\r\n"}) # correctly writes \r\n
最佳答案
如果您在写入 CSV 之前将其作为字符串获取,则可以使用 String#chomp
删除尾随换行符。
如果您正在使用以下方式写入文件:
File.open('my.csv','w'){ |f| f.puts my_csv }
...然后你自己添加一个换行符,可以避免它:
File.open('my.csv','w'){ |f| f.write my_csv }
如果您提供用于生成和编写 CSV 的实际代码,我们可以更进一步、更准确地帮助您。
关于Ruby 和写入 CSV - 如何避免最后出现空白行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258913/
我正在使用 LinqToExcel 轻松地将 Excel 数据导入 SQL Server。 var fileName = ConfigurationManager.AppSetting
在我的 MVVM WPF 应用程序中,我使用的是数据绑定(bind)流文档。我使用了 here 描述的技术能够将我的数据绑定(bind)到流文档。 我的流文档绑定(bind)到我的 View 模型中的
好吧,这很难解释。 场景: 我有一个 DataGrid 定义如下: 它有两个 header ,我需要添加数据,我做了很多研究建议使用 Obs
如果用户单击 DataGridView 底部的空白行并将焦点从 DataGridView 移开,则现在单击的行将处于指示对该行进行更改的状态。 是否可以告诉 DataGridView 取消将此行标记为
我必须迭代行并将其添加到列表中,但我得到的总行数是 Excel 工作表中存在的总行数,即 1001 行,但我只有 3 行,包括标题,我必须停止使用行号的大小进行循环。 我的代码是 Sheet
我有一个 csv 文件,其中包含必须从中删除的信息(通过删除相应的列来完成),我得到的输出是我所期望的,除了每行之间还给我空白行。我怎样才能摆脱那些? (我目前没有pandas,所以如果有解决这个问题
我是一名优秀的程序员,十分优秀!