Ruby on rails 在ruby中将文件拆分为两个临时文件
我有一个用虚线分隔的两种不同格式的大文件,如何将文件拆分为两个临时文件进行处理 例如:Ruby on rails 在ruby中将文件拆分为两个临时文件,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个用虚线分隔的两种不同格式的大文件,如何将文件拆分为两个临时文件进行处理 例如: yaml:format yaml:format yaml:format --------- csv,format csv,format etc. 在正好十二个破折号处拆分: yaml, csv = input.split('------------', 2) 或以可变的破折号编号 yaml, csv = input.split(/^-+$/, 2) 这将在分隔符周围产生空行(yaml的结尾和csv的开头
yaml:format
yaml:format
yaml:format
---------
csv,format
csv,format
etc.
在正好十二个破折号处拆分:
yaml, csv = input.split('------------', 2)
或以可变的破折号编号
yaml, csv = input.split(/^-+$/, 2)
这将在分隔符周围产生空行(yaml的结尾和csv的开头),如果您想消除它们,可以这样做
yaml, csv = input.split(/[\r\n]+^-+$[\r\n]+/, 2)
什么是“大”?根据您对“大”的定义,解决方案可能更简单,也可能更难…文件大小实际上是可变的,但几乎每次虚线都在行号100之前。好的,知道了就好了。我想也许大意味着兆字节的文本:)当我尝试放置yaml时,它会打印整个文件,csv var是空的。我猜分隔符可以是可变长度的?编辑我的答案以反映可变长度分隔符。正好是12个破折号。始终。这是我目前为止的代码:
txt=open(url:http#u basic_authentication=>['user','pass'])
file=file.read(txt)
delimiter=“--------------”
y,c=file.split(/{delimiter}\n/,2)
放置y
对我有效,双重检查。也许是行尾?编辑。