[過去ログ]
Perlについての質問箱 64箱目 (1002レス)
Perlについての質問箱 64箱目 http://mevius.5ch.net/test/read.cgi/tech/1548981877/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
928: デフォルトの名無しさん [sage] 2021/03/04(木) 00:03:04.76 ID:ls8aTj6l Ruby なら、 line_num = 0 # 行番号 # 行末の改行を削除して、1行ずつ処理する results = File.foreach( "test154_data.txt", chomp: true ).with_object( [ ] ) do |line, accm| line_num += 1 # 3行毎に、ハッシュを作って、蓄積変数に追加する accm.push Hash.new if line_num % 3 == 1 ary = line.split( ':', 2 ) # 左からコロンで、2つに分割する hash = accm.last # 最後の要素 hash[ ary[ 0 ] ] = ary[ 1 ] end p results 出力 [{"start"=>"aaa1", "end"=>"bbb1", "value"=>"1.23"}, {"start"=>"aaa2", "end"=>"bbb2", "value"=>"2.34"}] http://mevius.5ch.net/test/read.cgi/tech/1548981877/928
966: 928 [sage] 2021/03/09(火) 05:19:08.22 ID:NUN2sKP0 >>925 Ruby で、元のファイルを、CSV へ変換してみた。 データ中に、ダブルクォーテーション・カンマを入れても、正常に動く require 'csv' line_number = 0 # 行番号 # 行末の改行を削除して、1行ずつ処理する。蓄積変数は2次元配列 results = File.foreach( "input.txt", chomp: true ).with_object( [ ] ) do |line, accm| line_number += 1 accm.push [ ] if line_number % 3 == 1 # 3行毎に、空配列を追加する ary = line.split( ':', 2 ) # 左からコロンで、2つに分割する last = accm.last # 最後の要素 (配列) last.push( ary[ 1 ] ) # コロンの右側を、配列に追加する end results.unshift %w(start end value) # 先頭に、ヘッダー行を追加する # p results csv_str = results.map( &:to_csv ).join # 2次元配列を、CSV 文字列に変換する print csv_str 出力 start,end,value a_1,"b""1",1 "a,2",b_2,2.34 http://mevius.5ch.net/test/read.cgi/tech/1548981877/966
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.032s