Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在ruby中将文件拆分为两个临时文件_Ruby On Rails_Ruby - Fatal编程技术网

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
对我有效,双重检查。也许是行尾?编辑。