![アートボード_1](https://assets.st-note.com/production/uploads/images/19796462/rectangle_large_type_2_1b0e777aaf443fa5c9f6c3a2bb84cdb2.png?width=800)
pythonで日本語をローマ字に変換するライブラリ 「pykakasi」
pythonで簡単なプログラムを組んで単調作業を省略しはじめてたら、ついに「日本語をローマ字に打ち直す」ことすら面倒に感じてきました。怠惰な人間の省エネ主義は恐ろしい(自分)。そこでまた一連の作業をpythonで自動化してみたので勉強メモとして共有します。ほぼライブラリの紹介です。
(背景)案件ごとに英字表記でフォルダを作る作業が面倒
普段の仕事ではslackのチャンネルごとにフォルダを作り、そこに参考資料や素材、制作ファイルを分けて保存しています。そのため、下記作業が下準備として発生していました。たったこれだけですが、だるくなってしまった。
(例)「#20200224_ほげほげ企業」という案件→「20200224_hogehogekigyou」というフォルダを作る
→その中でさらに「asset」に素材を、「ref」に参考資料を、「obs」にボツ作を入れるためにフォルダを作る。
(作ったもの)日本語名と保存場所入力でフォルダ自動作成
単純に上記作業を自動化したものです。超ライブラリありきなので、すごくシンプルです。
(使用)ライブラリ 「pykakasi」
興味本位でググってみたらありました。pythonで漢字含む日本語をローマ字に変換してくれるライブラリ 。すごい。
(参考)
このライブラリの使い方は下記に詳しく&わかりやすく載っていました。
(手順1)入力で日本語名と保存場所を指定
project_name_jp = input('Enter project name in JP:')
project_dir = input('Enter project direction:')
os.chdir(project_dir.strip())
特に難しいことはなく変数に入れている他、コピペで気づかず空白入ると面倒なのでstripで消してます。
(手順2)指定場所にフォルダを作成し、さらにその中にフォルダ作成
if not os.path.exists(project_name_rmj):
os.mkdir(project_name_rmj)
os.chdir(project_name_rmj)
pyperclip.copy(project_name_rmj)
folders = ['obs','asset','ref']
for folder in folders:
if not os.path.exists(folder):
os.mkdir(folder)
else:
print('Existing directory')
上書きされると面倒なので、一応同じ名前のフォルダがなければという条件いれながら、os.mkdirで各層にフォルダ作っていく。
(完成品)
上記ライブラリ のメソッドに沿って書いただけです。ちなみにslackのチャンネル名からコピペするとき先頭につく「♯」が邪魔なので消しています。
またそのローマ字のフォルダ名はその後すぐ使うことがあるので、クリップボードヘコピーするライブラリ 「pyperclip」も使用してます。
# coding: UTF-8
#!/usr/bin/python3
import os
import pyperclip
from pykakasi import kakasi
project_name_jp = input('Enter project name in JP:')
project_dir = input('Enter project direction:')
os.chdir(project_dir.strip())
kakasi = kakasi()
kakasi.setMode("H", "a")
kakasi.setMode("K", "a")
kakasi.setMode("J", "a")
kakasi.setMode("r", "Hepburn")
conv = kakasi.getConverter()
project_name_rmj = conv.do(project_name_jp.strip('#',))
if not os.path.exists(project_name_rmj):
os.mkdir(project_name_rmj)
os.chdir(project_name_rmj)
pyperclip.copy(project_name_rmj)
folders = ['obs','asset','ref']
for folder in folders:
if not os.path.exists(folder):
os.mkdir(folder)
else:
print('Existing directory')
(まとめ)面倒事はもう全部pythonに投げて行こうと思う
これで作業開始前のちょっとした面倒から解放されたので、これからもどんどん作業効率化する省エネ主義を極めて行こうと思います(笑)。
以上です!何かすこしでも役に立てば嬉しいです。
コメントもお待ちしてます。
この記事が気に入ったらサポートをしてみませんか?