回答編集履歴

2

サンプルコードを張り忘れたので追加

2018/06/10 11:48

投稿

miyahan
miyahan

スコア3095

test CHANGED
@@ -90,7 +90,7 @@
90
90
 
91
91
 
92
92
 
93
- テンプレートエンジンを使うと、たとえば値の数が可変であっても柔軟にテキストを生成することができます。
93
+ 次に応用編です。テンプレートエンジンを使うとより柔軟にテキストを生成することができます。
94
94
 
95
95
 
96
96
 
@@ -122,7 +122,57 @@
122
122
 
123
123
 
124
124
 
125
- ```jinja2
125
+ ```python
126
+
127
+ import json
128
+
129
+ import time
130
+
131
+
132
+
133
+ from jinja2 import Environment
134
+
135
+ import pyperclip
136
+
137
+
138
+
139
+
140
+
141
+ if __name__ == '__main__':
142
+
143
+ with open('rep_dict.json', 'r', encoding="utf-8") as f:
144
+
145
+ dict_rep = json.load(f)
146
+
147
+
148
+
149
+ clip_last = None
150
+
151
+ while True:
152
+
153
+ clip = str(pyperclip.paste())
154
+
155
+ if clip != clip_last:
156
+
157
+ print('--- Clipboard changed ---')
158
+
159
+ new_clip = Environment().from_string(clip).render(dict_rep)
160
+
161
+ if clip != new_clip:
162
+
163
+ pyperclip.copy(new_clip)
164
+
165
+ print('--- Rewrite Complete! ---')
166
+
167
+ clip_last = new_clip
168
+
169
+ time.sleep(1)
170
+
171
+ ```
172
+
173
+
174
+
175
+ ```text
126
176
 
127
177
  {{ 宛先指名 }}様
128
178
 

1

サンプルコード追加

2018/06/10 11:48

投稿

miyahan
miyahan

スコア3095

test CHANGED
@@ -86,4 +86,116 @@
86
86
 
87
87
 
88
88
 
89
+ ---
90
+
91
+
92
+
93
+ テンプレートエンジンを使うと、たとえば値の数が可変であっても柔軟にテキストを生成することができます。
94
+
95
+
96
+
97
+ ```json
98
+
99
+ {
100
+
101
+ "郵便番号": "〒100-8111",
102
+
103
+ "住所": "東京都千代田区千代田1-1",
104
+
105
+ "宛先指名": "山田 太郎",
106
+
107
+ "案件": "H社向け××システム",
108
+
109
+ "必要書類": [
110
+
111
+ "見積もり確認書",
112
+
113
+ "要求案件シート",
114
+
115
+ "仮契約書"
116
+
117
+ ]
118
+
119
+ }
120
+
121
+ ```
122
+
123
+
124
+
125
+ ```jinja2
126
+
127
+ {{ 宛先指名 }}様
128
+
129
+ 先月ご依頼いただきました{案件}についてですが、…(中略)
130
+
131
+
132
+
133
+ 書類を送付いただけませんでしょうか。
134
+
135
+
136
+
137
+ 送付先:
138
+
139
+ {{ 郵便番号 }} {{ 住所 }} 宛
140
+
141
+
142
+
143
+ 送付書類:
144
+
145
+ {% for 書類名 in 必要書類 %}・{{ 書類名 }}
146
+
147
+ {% endfor %}
148
+
149
+ 以上{{ 必要書類|length }}点
150
+
151
+
152
+
153
+ お忙しい中大変申し訳ありませんが、ご対応のほど、よろしくお願いいたします。
154
+
155
+ ```
156
+
157
+
158
+
159
+ ```text
160
+
161
+ 山田 太郎様
162
+
163
+ 先月ご依頼いただきました{案件}についてですが、…(中略)
164
+
165
+
166
+
167
+ 書類を送付いただけませんでしょうか。
168
+
169
+
170
+
171
+ 送付先:
172
+
173
+ 〒100-8111 東京都千代田区千代田1-1 宛
174
+
175
+
176
+
177
+ 送付書類:
178
+
179
+ ・見積もり確認書
180
+
181
+ ・要求案件シート
182
+
183
+ ・仮契約書
184
+
185
+
186
+
187
+ 以上3点
188
+
189
+
190
+
191
+ お忙しい中大変申し訳ありませんが、ご対応のほど、よろしくお願いいたします。
192
+
193
+ ```
194
+
195
+
196
+
197
+ ↑ このようにデータが複数ある場合でも対応できますし、要素の数を計算したりと様々な処理が可能です
198
+
199
+
200
+
89
201
  Jinja2 はWebアプリケーションでHTMLを生成したり、メールの定型文を作ったりなど、動的にテキストを生成する用途に広く使えます。覚えて損はありませんのでぜひ触ってみて下さい。