「一行ずつ数値の計算処理を行い」が具体的にどういう処理かよく分からないのですが,仮に元ファイルの各行に一つの整数が書いてあって,それを 2 倍したものを別ファイルに書き出す,という話だと仮定します。
結果を格納するファイルは,ファイルに _
を付けてもよいのですが,ディレクトリーを別にしたほうが管理しやすいかと思い,そうしてみます。
元ファイルは,カレントディレクトリー直下の source
の下に入っているとして,結果のファイルは destination
の下に格納する,とします。
Dir.glob("**/*")
という書き方をされているので,元ファイルはすべてディレクトリー直下にあるとは限らず,サブディレクトリーに入っていることもあるのかな,と思いました。
そうなると,標準添付の pathname
ライブラリーを使うと楽かと思います。
こんな感じでどうでしょうか。
rb
1require "pathname"
2
3source_dir = Pathname("source")
4destination_dir = Pathname("destination")
5
6Pathname.glob(source_dir.join("**/*")) do |source_path|
7 # ファイルじゃないとき(ディレクトリーのとき)はスキップ
8 next unless source_path.file?
9
10 # source_dir から見た相対パス
11 rel_path = source_path.relative_path_from source_dir
12
13 # 保存先のパス
14 destination_path = destination_dir.join(rel_path)
15
16 # ディレクトリーを必要に応じて作成
17 destination_path.dirname.mkpath
18
19 # 書き出し
20 destination_path.open "w" do |f|
21 # 元ファイルの各行について繰り返し
22 source_path.each_line do |line|
23 f.puts line.to_i * 2
24 end
25 end
26end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/15 17:36
2017/12/15 18:25
2017/12/16 13:33