いろいろ備忘録日記

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

python

pbcopyとpbpasteコマンド (mac独自コマンド, clipboard, pasteboard, pyperclip)

概要 macでクリップボードを扱う事ができるコマンドがあるのを今更しった。 mac使っている人だと当たり前なのかもしれないけど、自分用にメモメモ。 このコマンド知ったのは、pythonのpyperclipってライブラリのソース眺めていたときに macの場合に、これら…

Pythonメモ-36 (コメントでpylintの警告を抑制する) (pylint, suppress warning, claiming)

概要 よく忘れるのでメモメモ。 pylintを使っていると、きっちり警告出してくれるので、とても有り難いのですが たまに一時的に抑制したいときがあります。例えば pyzmqつかっていると、zmq.REPって形で通信形式を指定するのですが このREPって属性は、実行…

Pythonメモ-35 (基本コンテナオブジェクトと読み取り専用オブジェクト) (list, dict, set, tuple, MappingProxyType, frozenset)

概要 python には、基本的なコンテナとして list dict set が用意されています。で、他の言語(特にコンパイル系の言語) やってた人がよく言ってくるのが 「読み取り専用のコレクションみたいなのないの? IReadOnlyCollectionみたいな」 って質問です。pyt…

Pythonメモ-34 (ファイルの読取り専用を外す) (os.access, os.W_OK, os.chmod, stat.S_IWRITE)

概要 よく使ってる処理だけど、よく忘れるのでメモメモ。 たまに read-only なファイルが混ざっているようなディレクトリの中を 問答無用で読取り専用外したいときがあります。エクスプローラーですればいいじゃんって なるのですが、たまに読取り専用外れて…

Pythonメモ-33 (iter関数) (iter(callable, sentinel), iter関数の引数2つ版)

概要 たまーにしか使わないけど、忘れるのでメモメモ。 組み込み関数 iter() には、引数が一つ版と引数2つ版があります。 それぞれ、書式は以下となります。 iter(iterable) iter(callable, sentinel) なんか、二つ目の引数がちょっと変・・・w iter()さんは…

Pythonメモ-32 (個人的おすすめPython書籍)

更新履歴 概要 書籍紹介 入門 Python 3 みんなのPython Effective Python 面倒なことはPythonにやらせよう Pythonによるデータ分析入門 -- NumPy, pandasを使ったデータ処理 Fluent Pytnon 日本語版 PythonとJavaScriptではじめるデータビジュアライゼーショ…

Pythonメモ-31 (無料で読めるPython情報 と 便利ライブラリリスト)(links, tutorial, beginners guide)

概要 無料で読めるリソース(日本語および英語) Python 公式ドキュメント(日本語) Dive Info Python 3 日本語版 Python ヒッチハイクガイド 日本語版 Python Cookbook Awesome Python Stackoverflowのpythonタグ QiitaのPythonタグ A Byte of Python djan…

Pythonメモ-30 (pythonの特殊 else ブロック)(for-else, while-else, try-else)

概要 よく忘れるのでメモメモ。 python には、特殊な else ブロックがあって、for, while, try の部分に else ブロックを持つことができます。 どれも、正常に処理が通った場合に else ブロックに入ります 。 for-else ループが break せずに終了した場合 wh…

Pythonメモ-29 (slice)(特定のシーケンスのrangeを表すオブジェクト, スライスオブジェクト)

概要 よく忘れるので自分用にメモメモ。 pythonの組み込み関数に slice というのがあります。 名前の通り、指定された範囲のスライスを表すオブジェクトを作ってくれます。 通常だと l = list(range(10)) print(l[2:4]) と記述するところを l = list(range(1…

Pythonメモ-28 (contextlib.suppress)(例外発生しても暗黙で飲み込むコンテキストマネージャ)

概要 たまに処理的に例外が発生しても無視しちゃうときがあります。 たとえば、ファイル書き込む処理などで、プロローグで存在するかどうかわからないけどとりあえず削除しとく みたいなものです。通常こういう場合、ファイルが存在するかチェックするか、も…

Pythonメモ-27 (名前空間パッケージ)(PEP420, Implicit Namespace Packages)

概要 Pythonのパッケージの仕組みは、シンプルな考え方でディレクトリ内に __init__.py があればパッケージとして認識してくれます。 なのですが、同じパッケージ名で複数のモジュール構造を作ろうとするとエラーになります。 サンプル 以下のような構造(ラ…

Pythonメモ-26 (sphinx勉強環境を構築)(sphinx, sphinx-quickstart, vs code, reStructuredText, sphinx_rtd_theme)

概要 遅まきながら、sphinx使えるようになりたいって事で まずは勉強用の環境を構築する際のメモ。たぶんその内忘れてしまいそうなので。 環境は mac ですが、windows でもだいだい同じでした。 毎回 make html するのが面倒なので、エディタでプレビューも…

Pythonメモ-25 (pip実行するとエラーになる)(ModuleNotFoundError: No module named 'pip._vendor.requests.adapters', conda, anaconda)

概要 pythonの環境としてAnaconda使っているのですが、最近アップデートすると pipコマンドが実行できなくなりました。環境は Windows です。 以下のエラーが発生するようになりました。 $ pip Traceback (most recent call last): File "C:\Anaconda3\Scrip…

Pythonメモ-24 (f文字列の書式メモ)(PEP498, フォーマット済み文字列リテラル, 数値フォーマット)

概要 python 3.6 で追加されたフォーマット済み文字列リテラル、通称 f-strings の書式について。 よく忘れるのでメモ。 内容 普通に内容表示 word = 'world' f'hello {word}' 'hello world' 文字列長指定(デフォルト) word = 'helloworld' f'{word:20}' 'h…

Pythonメモ-23 (gitpythonでgitを操作)(gitpython, ファイルの日付をコミット日時に)

概要 python から git を操作するライブラリ探していると以下を発見。 github.com やりたいこと(一部愚痴) 一部の世界では、今でも何故かファイルの更新日付が(とても*100)重要です。。。 で、そういうところではリリースする際にソースからモジュールに至…

Pythonメモ-21 (PyCharmでgithubのprivate repoをcloneしようとしたらエラー)

概要 ちょっとハマったので、忘れないうちにメモメモ。 github にある プライベートリポジトリ を clone しようとしたら Clone failed: repository 'https://github.com/xxxx/my-private-repo.git/' not found ってエラーが出ました。 情報収集 stackoverflo…

Pythonメモ-20 (Pythonに関する情報のリンク) (あとで読むリスト, Read it later, Python Links)

概要 Pocketに溜まりまくってきたので、ここにメモ。 後で読む。以下順不同。 こうやって見るとPythonの情報って本当にいっぱいある。 自分のPython力量がいかにウンコレベルなのかを実感する・・・。 勉強せねば・・。 ChangeLog 2018/05/15 Githubにリポジ…

Pythonメモ-19 (pyinstaller v3.3がリリース, python 3.6のサポート追加)

概要 pyinstallerのv3.3がリリースされました。ついに python 3.6 のサポートが追加!! github.com 待ちわびてた人も多いのじゃないでしょうか。 使い方などは今までと同じです。 $ python -V Python 3.6.1 :: Anaconda custom (x86_64) # pyinstaller 入れ…

Visual Studio Code の 64ビット版 がリリースされてた (July 2017 (version 1.15)から, x64, Windows)

July 2017リリースにて、64ビット版がリリースされてた。 code.visualstudio.com 注意点として、既に32ビット版をインストールしている場合はアンインストールしてから64ビット版をインストールしなさいとのこと。 以下上記ページより。 Note: If you are us…

Pythonメモ-18 (joblib, 手軽に並列処理, multiprocessing, joblib.Parallel)

概要 multiprocessingモジュールよりも手軽に並列処理がサクッと書けるので重宝しているモジュール。 スクリプト作っていると、結構な頻度で大量のデータを一気に処理することが多くなります。 ちょんプロなので、時間かかってもいいのですが、何回も走らせ…

Pythonメモ-17 (psutil, システム情報取得, 空きメモリ取得)

概要 たまに空きメモリ量をスクリプトで取りたいときに、よく忘れるのでメモ。 psutil モジュール自体は、メモリ量だけじゃなくてシステム情報いろいろ取得できる超便利なモジュール。 ネットワークの情報取得とかは重宝してます。 メモリ量は psutil.virtua…

Pythonメモ-16 (paramiko, ssh, UnicodeDecodeError, stdoutとstderrがテキストモード, monkey_patch関数)

概要 python で sshとかsftp処理しようとすると大抵出て来る paramiko モジュールさん。 超便利なのですが、sshでやり取りする処理を書いて 標準出力を受け取ろうとすると、UnicodeDecodeError が発生するときがあります。 なんでなのかというと、paramiko内…

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

概要 最近よく使っている小さくて便利なモジュール。 機能としては、クリップボードとテキストデータをやり取りできるだけなのですが 私の場合、使い捨てスクリプト作っているときって、よく なんか処理する 結果をCSVとかテキストファイルとかに出力 エディ…

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

概要 今までアプリがフリーズしたと勘違いしていた。。。解除方法わかったので忘れない内にメモメモ。 ipython使ってて、VisualStudioとかのクセでCtrl+Spaceをよく押してしまうのですが ipythonで、それをやると一見フリーズしたみたいに何も入力できなくな…

Pythonメモ-13 (collection.namedtupleとtyping.NamedTuple)

概要 前にcollections.namedtupleについての記事を書いていたのですが devlights.hatenablog.com 以下のページをみてたら、typing.NamedTupleというものもあるとのこと。 dbader.org pythonのドキュメントを見ると、collections.namedtupleの型付き版とのこ…

Pythonメモ-12 (Dangerous Python Functions シリーズ, Part 3まで)

概要 まだちゃんとブログ記事呼んでないのですが、忘れないようにとりあえずメモ。 Pythonで便利なんだけど使わない方がいいよっていう内容のシリーズですね。 www.kevinlondon.com www.kevinlondon.com www.kevinlondon.com Part.3までは辿れたんですが、も…

Pythonメモ-11 (ディレクトリの削除, os.remove, os.rmdir, os.removedirs, shutil.rmtree)

概要 未だにちょこちょこ忘れてて、同じ間違いをするので忘れないようにメモ。 Pythonでディレクトリを削除しようとしてて、いつもの調子で os.remove('/tmp/a') とかするとOSErrorが発生します。Windowsだと以下のような感じ。 PermissionError: [WinError …

Pythonメモ-10 (Online Python Tutor, Visualize Python code, Pythonコードを可視化, Python以外も可能)

概要 知らなかったのでメモメモ。Online Python Tutorというサイト Python Tutor - Visualize Python, Java, JavaScript, TypeScript, Ruby, C, and C++ code execution すごくいい。記述したコードを1ステップ毎に どのような内部状態になっているのかを可…

JetBrainsのIDEでコード補完を大文字小文字無視にする (Case-insensitive code completion)

概要 いつも忘れるのでメモメモ。 多分、どのIDEでも同じ設定だと思います。(IDEAとPyCharmとRiderでは確認) Visual Studioとかに慣れていると、どうしても大文字小文字区別なしに補完が出てきて欲しいので。 やり方 設定画面の「Editor」→「General」→「C…

Pythonメモ-09 (pythonnet, Python for .NET, python と .NET を繋ぐライブラリ)

まだ、あんまり覚えてないですが、とりあえずメモメモ。 概要 pythonnetは、python と .NET を繋ぐライブラリ。 Python for .NET 似たようなライブラリとして IronPython がありますが、IronPython は .NET Framework や Monoで実装されたPython処理系。なの…