複数行に対して同じ処理をしたい
業務でドキュメントを作成する際、複数行に対して、
★箇条書きに一括変換したい
★末尾に特定の処理を入れたい
★行毎に少し複雑な処理をしたい
という場合があります。
その場合、クリップボードを経由してスクリプトを実行すると
インポート用のファイルを準備する必要がなく便利に実行できます。
python の pyperclip を使用して、
「取得したクリップボードの中身を1行ずつ処理する」
流れを記載します。
取得の流れ
- ドキュメント全体をコピーする(クリップボードにいれる)
- スクリプトを実行する
- クリップボードを貼り付ける
実行結果
箇条書きに一括変換したい
末尾に特定の処理を入れたい
行毎に少し複雑な処理をしたい
↓
★箇条書きに一括変換したい
★末尾に特定の処理を入れたい
★行毎に少し複雑な処理をしたい
スクリプト実体
#モジュールをインポート
## クリップボードを取得する pip install pyperclip
import pyperclip
## スクリプトの終了に使用
import sys
# list形式で取得
## listを初期化
mojiretsu=[]
## クリップボードを取得 うまくとれなかったらエラーで終了
try:
mojiretsu=pyperclip.paste().split('\n')
except:
pyperclip.copy("エラー:クリップボードに正しくコピー出来ていないかもしれません")
sys.exit()
# 結果リストの初期化
kekka=[]
# 取得したクリップボードの中身を1行ずつ処理する
for line in mojiretsu:
## 1行毎に実施したい処理を記載する
## ……
## 例えば各行頭に★を追加する
star_line = "★"+line
# 処理した内容を結果配列に追加する
kekka.append(star_line)
# 明示的に中身を全て文字列にする
kekka_list=map(str,kekka)
# リストを改行しながらjoinしてひとつの文字列にする
kekka_str='\n'.join(kekka_list)
# クリップボードへ
pyperclip.copy(kekka_str)