2019年3月22日金曜日

開発環境

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング (Al Sweigart(著)、相川 愛三(翻訳)、オライリージャパン)に出てきたpyperclipパッケージを利用して、ダブルクリックのみで日本語(非ASCII文字)を含むアドレスのTwitter等への貼り付けの問題を解決できるようにしてみた。

といのも、毎回アドレスバーでURLをコピー、JavaScript Consoleを開いて、そこにペースト、そしてencodeURIでエンコード、それをコピー、そしてペーストって大変。その都度Google ChromeやFirefoxを開くのも同様に大変なので。

2019/09/01 追記:

Google Chrome(macOS)もSafariと同じ挙動になったみたい。「Version 76.0.3809.132 (Official Build) (64-bit)」で確認。いつ変わったかは調べてない。

Firefox(macOS)も確認したらこちらの挙動は元のままで変わらず。バージョンは「68.0.2 (64-bit)」。

コード

Python 3

#!/usr/bin/env python3
import urllib.parse
import pyperclip

url = pyperclip.paste()
print(url)
url = urllib.parse.quote(url, safe='/:')
print(url)
pyperclip.copy(url)

入出力結果(cmd(コマンドプロンプト)、Terminal、Jupyter(IPython))

Last login: Fri Mar 22 11:08:42 on ttys001
/Users/.../URLEncoder.py ; exit;
$ /Users/.../URLEncoder.py ; exit;
https://www.jp-kamimura.com/連長圧縮の結果
https://www.jp-kamimura.com/%E9%80%A3%E9%95%B7%E5%9C%A7%E7%B8%AE%E3%81%AE%E7%B5%90%E6%9E%9C
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

上記の出力は、ランレングス符号化(RLE(Run-Length Encoding))による圧縮結果を変換した結果。

事前準備、使い方は、

  1. Python 3.xをインストール。(macOSに標準搭載のpythonが2.7ではなく3.xになってくれれば…)
  2. pip等でpyperclipをインストール。
  3. 上記のコードをURLEncoder.py(あるいは他の名前でもいい)というファイルとして保存して実行権限を変更。

    Terminal

    $ chmod a+x URLEncoder.py
    $
    
  4. 保存したファイルを右クリック、「Get Info」、「Open with:」で下の方の「Other」を選択。
  5. 「Enable:」をAll AplicationsにしてUtilitiesフォルダのTerminalを選択。
あとは、SafariのアドレスバーでアドレスをコピーしたあとURLEncoder.pyファイルをクリックすれば、クリップボードにエンコード済みのURLが保存されるのでそのまま貼り付ける。

頻繁に使うならデスクトップとかDock(アプリケーションの部分にファイルは置けないみたいなので、右側のTrash(ゴミ箱)がある部分)に設置しておけば、いつでもすぐに使えたり。

tkinterでGUIアプリケーションにしてみた。

0 コメント:

コメントを投稿