いろいろ備忘録日記

主に .NET と Python絡みのメモを公開しています。

Pythonメモ-15 (pyperclip, クリップボードとやり取り, copy, paste)

概要

最近よく使っている小さくて便利なモジュール。

機能としては、クリップボードとテキストデータをやり取りできるだけなのですが

私の場合、使い捨てスクリプト作っているときって、よく

  • なんか処理する
  • 結果をCSVとかテキストファイルとかに出力
  • エディタで開く
  • コピーする
  • なんかに貼り付ける

っていうのが多いので、このモジュール使うと

  • なんか処理する
  • 結果をクリップボードに入れているので、そのまま貼付け

って風に楽になります。

インストールは

pip install pyperclip

で終わりです。

利用する関数は copy(text) と paste() の二つだけです。

サンプル

import pyperclip as clip

# ---------------------------------------------------------------
# [link]
# https://github.com/asweigart/pyperclip
# http://pyperclip.readthedocs.io/en/latest/introduction.html
# ---------------------------------------------------------------
# pyperclip モジュールは、クリップボードとのテキストデータを簡単に
# やり取りできるモジュール。クロスプラットフォーム対応しているため
# windows, mac, linux で動作する。
# ---------------------------------------------------------------
# 利用する関数は、 copy() と paste() の二つだけ。
# ---------------------------------------------------------------
# 注意点として、やり取りできるのはテキストデータのみとなる。
# テキストデータ以外を操作したい場合は、各プラットフォームのAPIを叩く必要がある。
# (windowsの場合は、win32com とか)
# ---------------------------------------------------------------

# クリップボードにコピー
clip.copy('hello world from pyperclip')

# クリップボードから取得
clipboard_text = clip.paste()
pr('paste()', clipboard_text)

#
# この後、エディタ上で CTRL+V すると同じ文字列がペーストされる。
#

参考情報

GitHub - asweigart/pyperclip: Python module for cross-platform clipboard functions.

Introduction — Pyperclip 1.5 documentation


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

ResharperのValue Originが超便利 (Resharper, Inspect, Value Origin, 値の遷移を追跡)

概要

以下のtwitterで知りました。Resharper結構長いこと使ってるくせにしらなかった・・・orz

使ってみると、確かに超便利!今まで、「この変数の値はどこで設定されてて、元ネタはどこから来てる?」って頑張って探してたのが、クリック一発になります。

使い方

上記のtweetにそのまんま書いてありますが

  • 対象となる変数で右クリックで「Inspect」→「Value Origin」ってする。
  • 対象となる変数で「Ctrl+Shift+A」で「value origin」って入力。(keyboard scheme が visual studio の場合)

とかで出来ます。結果は、「Inspection result」ツールウィンドウに出ます。

残念ながら、Riderの方には現在この機能は搭載されていません。是非搭載してほしいな。


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

Pythonメモ-14 (ipythonでのctrl+spaceについて, selection mode, フリーズと勘違い)

概要

今までアプリがフリーズしたと勘違いしていた。。。解除方法わかったので忘れない内にメモメモ。

ipython使ってて、VisualStudioとかのクセでCtrl+Spaceをよく押してしまうのですが

ipythonで、それをやると一見フリーズしたみたいに何も入力できなくなります。

さらにCtrl+Cも受け付けられなくなってしまう(勘違いだったのですが

いつも、「あーやっちゃった・・・」って感じでipython落として再起動していたのですが

以下の内容を発見。

github.com

Ctrl+Spaceを押すと、「Selection Mode」ってのになる模様。

このモードの時にCtrl+Cは別の役割を持つので、いつものCtrl+Cにならない。

解除するには、Delキー押すか、Ctrl+Gとのこと。

やってみたら、ちゃんと解除できました。マニュアルちゃんと読まなかった私が悪いです。

SelectionModeのときのキーバインド

以下のようになるみたい。

  • Ctrl+Space
    • SelectionModeに突入
  • Ctrl+W
    • 切り取り
  • Alt+W
    • コピー
  • Ctrl+Y
    • 貼付け
  • Ctrl+C >
    • インデント
  • Ctrl+C <
    • インデント
  • Ctrl+G
    • SelectionMode解除

過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。