いろいろ備忘録日記

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

python

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処理系。なの…

Pythonメモ-08 (Python loop optimization, ループ最適化, 時間計算量, Time-Complexity)

今回、あんまり python 関係ない話題ですが、面白かったのでメモメモ。 どの言語にも言える話です。 概要 stackoverflow の Python カテゴリ見てたら、以下の内容を発見。 stackoverflow.com トピックの投稿者さんは、処理をPythonで書いてるけどめっちゃ時…

Pythonメモ-07 (collections.namedtuple, 名前付きのフィールドを持つタプル)

namedtupleについてのメモです。 概要 むかーしむかしにpython触っていた時(多分 2.0 とかそのへん)には、無かったのですが 最近またpython触るようになって、まず気に入ったのがこの namedtuple さん。 軽いし、フィールドアクセスできるし、なんといって…

Pythonメモ-06 (PEP-3132 Extended Iterable Unpacking)

概要 小ネタ。Python 3.0で追加された仕様です。 知ってるとちょっと楽できます。 以下のPEPです。 www.python.org 名前は、Extended Iterable Unpacking って感じのちょっとむずかしそうな 名前ですが、実際にコード見てみるとすぐ意味が分かります。 list0…

Pythonメモ-05 (内包表記について)

以下、自分用のメモです。 概要 pythonといえば、「リスト内包表記(list comprehension)」が有名ですが リストだけじゃなくて、辞書にも集合にも内包表記があります。 リスト内包表記 [ expression for item in iterable] 辞書内包表記 { key_item: value_it…

Pythonメモ-04 (iterable, iterator, generator, yieldについて)

Pythonやりだすと、いろいろ便利なのでオモシレーってなって、もっと知りたいってなったころに出てくる子達がいます。 iterable, iterator, generator, yield 他の言語やってる人だと大体「あー」って分かるものなのですが とは言え、最後の yield などは初見「な…

Pythonメモ-03 (リスト内包表記の中でファイルをopenすることについて)

以下、自分用のメモです。 Pythonといえば、リスト内包表記。楽なので、ほいほい使いたいところなのですが スクリプト書くときって往々にして、なんかデータが詰まっているファイルがあって その中身をゴニョゴニョして、整形したり抽出したりすることが私の…

Pythonメモ-02 (改行コードをsplitしたい場合, splitlinesを使う)

以下、忘れないうちにメモメモ。 特定のデータがあって、改行コードでsplitしたい場合 DATA.split(os.linesep) ってやれば、macとlinuxではうまくいくんですが windowsでやると、分割されずに一つの文字列として 結果が返ってきた。 どうも、Windowsの場合 o…

Pythonメモ-01 (アスタリクスのみの引数, 後続のキーワード引数のキーワード指定を強制する)

個人的なPythonメモです。 環境 $ python Python 3.6.0 |Anaconda custom (x86_64)| (default, Dec 23 2016, 13:19:00) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more info…

マルチバイトを考慮した文字幅を取得

スクリプト書いていると、等幅フォント上で全角半角混じった文字列をピシッと 揃えたいときがよくあります。pythonのlen()は文字数を返すので、それでイケルと思ってしまいますが s = 'hello' len(s) 5 # OK s = 'こんにちわ' len(s) 5 # (´・ω・`) max_widt…

シーケンスを特定数のチャンクに分割

どの言語でもちょくちょく使う特定の数のチャンクに分割する処理のPython版。 いつも忘れてしまうのでメモメモ。 def chunks(sequence: Sequence, chunk_size: int = 1) -> Iterator[Any]: """ 指定されたシーケンスを指定されたチャンクに分割します. :para…

PyCharm 3に無償版 (Community Edition) が登場 (JetBrain, IDE, Python)

Pythonの開発環境として有名なJetBrainのPyCharmに無償版が登場していたので 忘れない内にメモメモ。 PyCharm 3 http://www.jetbrains.com/pycharm/ ダウンロードページに進むと、Pro版とfree版のダウンロードが選べます。 機能的には、当然違いがあって、We…

Python 2.7リリース (Python2系の最後のメジャーバージョンリリース)

ネタ元は、マイコミジャーナルさん。 メモメモ。 Python 2.7登場、2系最後のメジャーリリース http://journal.mycom.co.jp/news/2010/07/06/027/index.html Python 2.7 Release http://www.python.org/download/releases/2.7/ ついに、Python2系も最後のリリ…

unladen swallow (CPython, 高速化, Google)

大分遅いですが、今日知りました・・・。 メモメモ。 一言でいうと、現在のPython実装の高速版を作成することを目標としている プロジェクトという事になりますね。LLVMを利用して行う模様です。 且つCPythonとの互換性を維持する事も明言されています。 処…

Python 3.0 がリリース

Python 3.0がリリースされましたね。 今回の目玉はなんといってもUnicodeへの全面対応でしょう。 日本のユーザには使いやすくなった感じですね。 ただ、後方互換性がないので、前のスクリプトがそのまま 動かない可能性が高いみたいです。 以下リソース。 ht…

Python 2.6

リリースされたみたいです。 マルチプロセス機能などが強化された模様です。 以下、リソース。 http://codezine.jp/article/detail/3131 http://python.org/download/releases/2.6/

python関連のメモ

以下、自分用のメモです。よく忘れるので・・・w1.string.Template 簡易テンプレートエンジンみたいなもの。元から言語についているモジュールなので 利用が簡単。 import string print string.Template('hello $user.').substitute(user='gsf_zero1') 参…

IronPython開発入門(@IT)

@ITにて、IronPythonに関する記事が載ってました。 IronPython開発入門 http://www.atmarkit.co.jp/fdotnet/special/ironpython01/ironpython01_01.html とりかえず、メモメモ。 今回は、前編みたいです。 元々、pythonを良く使う人間なのでIronPythonの存在…

IronPythonで参照が必要なDLLの利用方法 (clr, AddReferenceByPartialName)

IronPythonにて、.NET環境で参照を追加する事が必要なDLL (System.Windows.Forms, System.Transactionsなど) を利用するには、以下のようにします。 import clr # # 参照が必要なDLLを参照追加します。 # clr.AddReferenceByPartialName('System.Windows.Fo…

Python 3.0a1 リリース

ついに、Python3000の最初のリリースであるアルファ版がリリースされました。今回のバージョンアップで、かなり基本的な部分が変わるので後方互換性は 損なわれるみたいですが、それなりの価値はありそうですね。 以下、参考リソースです。 スクリプト言語「…

TurboGear1.0.2.2リリース

いつの間にか、TurboGearのニューバージョンがリリースされてる・・ 今日、気づきましたw 今回のバージョンから、2.5に対応したみたいです。 まってましたって感じですね。 TurboGear http://www.turbogears.org/

Python情報へのリンク

Python入門にいい感じの情報へのリンクをまとめてくださってます。 忘れないうちにメモメモ。Python入門サイトのまとめ(From pythonでつくるskyfish開発ブログさん)

IPythonの%magic(マジックコマンド)について-1

前回、IPythonのMAIN FEATURESの抜粋をやったので、 今度は、マジックコマンド(%magic)の抜粋です。 メモ程度です。(^.^;; %Exit -- 確認なしでIPythonを終了. %Pprint -- pretty printingをON/OFFする. %Quit -- %Exitと同じ. %alias -- エイリアスを定義し…

IPythonの主な機能

?コマンドで出てくるヘルプ(MAIN FEATURES)から抜粋。適当に訳していますので 間違っている可能性は大です。こんな感じと思ってください。 通常のpython helpシステムへのアクセス。(helpコマンド) マジックコマンド(IPython独自の便利なコマンドの事。%comm…

デコレータの利用

python2.4から、デコレータという概念が追加されています。 デコレータとは、GoFのデザインパターンにある名前のやつと同じく なにかを修飾する機能を持つものです。pythonの場合は、 デコレート対象が関数およびメソッドになります。 見た目的には、javaの…

setの利用

python2.4から、コレクションオブジェクトとしてsetの概念が追加されています。 以前から、リストとハッシュ(辞書)とタプルなどが存在していましたが そこにsetも加わったという事になります。 javaをやっている人などは、分かると思いますがsetとは、重複が…

IronPythonのメモ

かなり、便利なIronPython君。 まだちょっとしか触っていないのですが、.netの動作確認するのとかには もってこいです。コンパイルの必要もないですしね。ちょこっとしたメモです。 IronPythonを.net組み込み状態にする。 import clr clrモジュールをインポ…

SQLAlchemy入門記-02 (エンジンの作成およびメタデータの作成)

前回インストールを済ませましたので、いよいよ使用してみましょう。 SQLAlchemyでは、以下2つの方法でデータベースにアクセスできます。 テーブルそのものを表すオブジェクト(テーブルオブジェクト) ドメインオブジェクト(つまり、テーブルオブジェクトと…

SQLAlchemy入門記-01 (インストール)

SQLAlchemyは、pythonで利用できるORMの一つです。 Data Mapperパターンによる設計方針で作成されており、同じくpythonで利用できる ORMの一つのSQLObjectは、ActiveRecordパターンです。 SQLObjectもそうですが、動的言語(pythonやruby)とORMの組み合わせは…

個人的によく使う外部モジュール

Pythonは、ビルドインライブラリが充実しているので、 そんなに外部ライブラリに頼る必要はないかもしれないのですが、 私の場合、Pythonをインストールしたら以下のものは必ずインストールしてます。とりあえず、箇条書きで。 EasyInstall(Debianのaptみた…

IPythonの設定ファイル

IPythonには、設定ファイルが存在していまして Windowsの場合は、ホームディレクトリに"_ipython"という ディレクトリが出来上がっているはずです。 その中に、 ipythonrc.ini というファイルがあります。これがIPythonの設定ファイルです。 この中に設定を…

IPython

ここを見て、インストールしてみました。 これ、めっちゃ便利!! windowsのコンソールでpythonを使う場合は、補完がきかなかったので 使いづらかったのですが、これで解消です。 (IDLEもあるのですがちょっともたつく感じがするのであまり使いません) Pytho…

Pythonの本

日本人によって、書かれたPython本がいつのまにか出てたんですね〜。[FROM papa33の日記] http://d.hatena.ne.jp/papa33/20060823#p1 私は、初めてまともに使った言語がPythonでした。 JAVAも同じく触っていたんですが、オブジェクト指向って ものが全然わか…

最近気になるフレームワークおよびツール

前から知ってはいたんですが、未だに手をだせずじまいなもの。 OpenLaszlo http://www.openlaszlo.org/ http://laszlo.jp/ Echo(Echo2) http://www.nextapp.com/platform/echo1/echo/ http://www.nextapp.com/platform/echo2/echo/ Wicket http://wicket.sou…

範囲(range)オブジェクト作成方法

[各言語での範囲(range)オブジェクト作成方法](1) groovy a = 1..10 a.each{ print it + ' '} #=> "1 2 3 4 5 6 7 8 9 10" もしくは (1..10).each{ print it + ' '} #=> "1 2 3 4 5 6 7 8 9 10" (2) ruby a = 1..10 a.each{ |v| print v.to_s + ' '} #=> "1 …

数値から文字列へ変換

[数値文字列から変換]組み込み関数のintを使用する. 10進数以外は明示的に基数を設定しなければならない.s = '10' print int(s) #=> 10s = '0x0a' print int(s, 16) #=> 10s = '012' print int(s, 8) #=> 10s = '0b1010' print int(s, 2) #=> 10 =====…

数値表現

[Pythonでの数値表現](1) 10進数 num = 10 #=> 10 (2) 16進数 num = 0x0a #=> 10 (3) 8進数 num = 012 #=> 10 (4) 2進数 2進数だけ下のようにしないとうまくいかなかった・・・ 他のやり方がある場合はご教授を(´ー`) int(str('1010'), 2) #=> 10 ====…