(Ruby)テキストファイルを行単位で分割して保存するコード

簡単なプログラムを書いたので記録。

テキストファイルを行単位で分割して保存します。
コピペしてコンソールから使えるよ。
Gistで見る

ソースコードを下に書きます。

# coding: UTF-8
def splitText src_txt_name, dst_txt_name
  line_array = []
	f = open src_txt_name
	f.each{|line|
		line_array.push line.strip
	}
	f.close
	line_index = 0
	line_array.each{ |line|
		file_name = dst_txt_name + line_index.to_s.rjust(4,'0') + '.txt'
		if line.length > 0
			File.write(file_name, line)
			line_index = line_index + 1
		end
	}
end

def systemTest
end

# main start
if ARGV.length == 1 && ARGV[0] == 'systemtest'
	systemTest
	exit
elsif not ARGV.length == 2
	p 'usage: splittext.rb src_txt dst_txt_name'
	p 'or: splittext.rb systemtest'
	exit
end
splitText(ARGV[0], ARGV[1])

頭・末尾の余計な空白を除去する strip関数とか、
右詰めで文字数を揃える rjust関数とかの
かゆいところに手が届く機能のおかげで短く書けた。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中