環境:windows10 + ruby 2.5.3
クラウドワークスのタスクのCSV記事(SJISで保存)を、MT形式ファイル(SJIS)に保存
work_path = ‘C:/work/’ (c:\work\) に置かれている *.csv を読み込み、
C:/work/mtdata.txt (c:\work\mtdata.txt) にMT形式ファイルを保存
1 | < span class = "hljs-comment" ># codng: utf-8</ span > |
4 | Encoding.default_internal = 'UTF-8' |
5 | < span class = "hljs-comment" ># 入出力エンコード設定確認用</ span > |
6 | puts "Encoding.default_external = < span class = "hljs-comment" >#{Encoding.default_external}" # =>Windows-31J</ span > |
7 | puts "Encoding.default_internal = < span class = "hljs-comment" >#{Encoding.default_internal}" # =>UTF-8</ span > |
10 | mt_file_name = work_path + "mtdata.txt" |
12 | File.delete(mt_file_name) < span class = "hljs-keyword" >if</ span > File.exists?(mt_file_name) |
13 | File.open(mt_file_name, < span class = "hljs-string" >"w"</ span >) < span class = "hljs-keyword" >do</ span > |mt_file| < span class = "hljs-comment" ># MTファイルオープン</ span > |
14 | csv_filenames = Dir.glob(work_path + < span class = "hljs-string" >'*.csv'</ span >) < span class = "hljs-comment" ># workにある *.csvファイル</ span > |
16 | puts < span class = "hljs-string" >"start..."</ span > |
17 | csv_filenames.each < span class = "hljs-keyword" >do</ span > |csv_file| |
19 | < span class = "hljs-comment" ># 作業ID 作業者 作業者ページURL 承認日時 1. 記事タイトル 2. 記事本文</ span > |
20 | csv_data = CSV.read(csv_file, headers: < span class = "hljs-literal" >true</ span >) |
21 | line_no = < span class = "hljs-number" >0</ span > |
22 | csv_data.each < span class = "hljs-keyword" >do</ span > |< span class = "hljs-keyword" >data</ span >| |
23 | line_no += < span class = "hljs-number" >1</ span > |
24 | total_line_no +=< span class = "hljs-number" >1</ span > |
25 | title = < span class = "hljs-keyword" >data</ span >[< span class = "hljs-string" >"1. 記事タイトル"</ span >] |
26 | kiji = < span class = "hljs-keyword" >data</ span >[< span class = "hljs-string" >"2. 記事本文"</ span >] |
29 | TITLE: < span class = "hljs-comment" >#{title}</ span > |
30 | BASENAME: post< span class = "hljs-comment" >#{total_line_no}</ span > |
31 | < span class = "hljs-keyword" >STATUS</ span >: Future |
32 | < span class = "hljs-keyword" >ALLOW</ span > COMMENTS: < span class = "hljs-number" >0</ span > |
33 | < span class = "hljs-keyword" >CONVERT</ span > BREAKS: __default__ |
34 | < span class = "hljs-keyword" >ALLOW</ span > PINGS: < span class = "hljs-number" >0</ span > |
35 | PRIMARY < span class = "hljs-keyword" >CATEGORY</ span >: |
36 | < span class = "hljs-keyword" >CATEGORY</ span >: |
40 | < span class = "hljs-built_in" >DATE</ span >: < span class = "hljs-number" >07</ span >/< span class = "hljs-number" >04</ span >/< span class = "hljs-number" >2016</ span > < span class = "hljs-number" >23</ span >:< span class = "hljs-number" >00</ span >:< span class = "hljs-number" >36</ span > |
41 | < span class = "hljs-comment" >-----</ span > |
42 | < span class = "hljs-keyword" >BODY</ span >: |
43 | < span class = "hljs-comment" >#{kiji}</ span > |
44 | < span class = "hljs-comment" >-----</ span > |
45 | < span class = "hljs-keyword" >EXTENDED</ span > < span class = "hljs-keyword" >BODY</ span >: |
47 | < span class = "hljs-comment" >-----</ span > |
50 | < span class = "hljs-comment" >-----</ span > |
53 | < span class = "hljs-comment" >-----</ span > |
56 | < span class = "hljs-comment" >--------</ span > |
58 | mt_file.write(mt_form) |
59 | < span class = "hljs-keyword" >end</ span > |
60 | puts < span class = "hljs-string" >"\n#{total_line_no}:#{line_no}"</ span > |
61 | < span class = "hljs-keyword" >end</ span > |
62 | < span class = "hljs-keyword" >end</ span > |
コメント