タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

PythonとProgrammingとprogrammingに関するsyanbiのブックマーク (115)

  • Pythonでサブプロセスと対話する - 西尾泰和のはてなダイアリー

    標準入力に1行入れると、標準出力で1行返してくるようなプログラムがあって、起動のたびに7分かかってめんどうだから、プロセスを起動しっぱなしにしておいてHTTPサーバで包んでやろうと思ったんですよ。 サブプロセスの挙動としてはcatだと思っていい。それで p = Popen(["cat"], stdin=PIPE, stdout=PIPE) ってやってから p.stdin.write("%s\n" % query) result = p.stdout.read() ってやるとブロックされてしまった。ブロックを避けるために生のread/writeではなくp.communicateを使えとマニュアルには書いてあるが、それを使うと1回やり取りした時点でfdを閉じてしまうから2回目で「ValueError: I/O operation on closed file」になる。p.stdin.flush

    Pythonでサブプロセスと対話する - 西尾泰和のはてなダイアリー
    syanbi
    syanbi 2011/04/19
    subprocess.PIPEを利用して入出力に同じパイプを利用した場合fdがロックされてしまう。解決のためには POSIX read を利用すればよいということで、os.readを利用する。
  • internのひみつ - atsuoishimoto's diary

    Pythonにはintern()という組み込み関数がある。結構特別扱いで重要な組み込み関数なのだが、使い道が今ひとつ分かりにくいのか知らない人も多いようだ。 intern <捕虜・危険人物などを>(一定の区域内に)拘禁する, 抑留する. [新英和(第7版)・和英(第5版)中辞典 株式会社研究社] なんだか物騒な関数だが、同じような機能を持つLisp族の関数から名前を拝借したのだろう。intern()をPythonスクリプトで書くと、だいたいこんな感じの処理になる。 _intern_map = {} def intern(s): if s in _intern_map: return _intern_map[s] else: _intern_map[s] = s s.interned = True return s 文字列sと同じ文字列が専用の辞書_intern_mapに登録済みなら登録済み

    internのひみつ - atsuoishimoto's diary
    syanbi
    syanbi 2011/04/18
    "is演算子のふしぎ"エントリのinternについて詳解
  • プログラミングを学んでみたい人に - atsuoishimoto's diary

    Twitterなんかをいろいろ眺めていると、もどかしくってたまらなくなってしまうことがある。プログラミングをやってみたいな〜と思いながらも、いつまでも最初の一歩を踏み出せない、そんな人を見たときだ。踏み出してはみたものの、自分の進路に自信を持てなくて先に進めなくなっている人も多い。見かけるたびに、もどかしさのあまり身もだえしている。 世の中にはいろんな技術があるが、プログラミングという技術はダントツに入門しやすい部類だ。必要な設備はパソコン一台だけだし、数学の知識も最低限で問題ないし、肉体的な鍛錬も必要ない。勘の良い人なら、1週間もあればそこそこ基礎を学べてしまう。その程度の勉強でも、それなりに実用的なプログラムを書けたりするのだ。まずは始めてみようよ、といつも思う。 実際にプログラミングを始められない理由として、最初に学ぶプログラミング言語の選択に迷っている人は多いみたいだ。確かに色々な

    プログラミングを学んでみたい人に - atsuoishimoto's diary
    syanbi
    syanbi 2011/04/17
    口で言うより手動かせ、ということ。
  • is演算子のふしぎ - atsuoishimoto's diary

    Pythonには、二つのオブジェクトが同じオブジェクトかどうか判定する is演算子というのがある。==演算子とちょっと似ているが、==演算子は二つのオブジェクトの値が等しいかどうかを判定し、is演算子は値に関わらず異なるオブジェクトが指定されればFalseを返す。 >>> list1 = [1,2,3] >>> also_list1 = list1 >>> list2 = [2,3,4] >>> equal_to_list1 = [1,2,3] >>> list1 is also_list1 # list1 と also_list1 は同じオブジェクト True >>> list1 is list2 # list1 と list2 は異なるオブジェクト False >>> list1 == list2 # list1 と list2 は異なる値を持つ False >>> list1 is

    is演算子のふしぎ - atsuoishimoto's diary
    syanbi
    syanbi 2011/04/14
    is演算子の挙動については、初めてのpythonに載っていた(オブジェクト再利用のためobjectidは同じになる等)が、 intern化については知らなかった。文字列比較のtipsとしてブクマ。
  • Pythonバージョンの選びかた - atsuoishimoto's diary

    Pythonはおよそ18ヶ月ごとに新しいメジャーバージョンをリリースする慣習になっていて、これまでにたくさんのバージョンがリリースされ、広く利用されてきた。Pythonの開発では後方互換性を保つことが非常に重視されていて、通常のアプリケーションであれば、Pythonのアップデートで動かなくなってしまうことはあまりない。アプリケーションが今後廃止される予定になっている機能を利用していると、DeprecationWarningという警告が出力されてしまう程度だ。 DeprecationWarningが出るようになってから実際に廃止されるまで少なくとも数年間はあるので、普通はその間にのんびり対処する事ができる。また、いったん廃止予定と決定されても、その機能が一部で使い続けられている場合には実際には削除されない、というケースも非常に多い。Pythonのドキュメントを見てみると、もう10年も前から廃

    Pythonバージョンの選びかた - atsuoishimoto's diary
    syanbi
    syanbi 2011/04/06
    個人的には、保守的なフレームワーク・バインディング(2系依存)などを通常で利用する場合は2.7。それ以外は3.2でいいはず。webに関しては、バイト文字列対処の注意。cgi使わないなら大丈夫。速度求めるならまだ2系なの?
  • func_closureのひみつ - atsuoishimoto's diary

    Pythonでデコレータで修飾した関数から、修飾される前の関数を取り出したいというニーズは多いようで デコレータ式を適用した関数から元の関数名を探す - gumi Engineer’s Blog デコレータを外す - logiqboard デコレータを取り除いて見たかった。 - podhmoの日記 のようなブログエントリが上がっているが、Pythonでは元の関数を取り出す確実な手法は用意されていないので諦めていただきたい。デコレータを使って関数を定義しても、Pythonはその情報をどこにも記録していない。 必要であれば http://docs.pylonsproject.org/projects/venusian/dev/ のようにデコレータ自身に細工をする、テスト対象モジュールのインポート時にフックを入れ、修飾せずに元の関数を返すデコレータに置き換えるなどとするしかないだろう。 自由変数

    func_closureのひみつ - atsuoishimoto's diary
  • Python for fun and profit: Creating a distributed SSH brute forcer in Python - Part 2 the SSH scanner

    Thursday, 31 March 2011 Creating a distributed SSH brute forcer in Python - Part 2 the SSH scanner Following on from my previous post we will now start to put pen to paper and create our system. The SSH scanner is the most integral part of the whole set-up, it finds the targets that we want to brute force and logs them to our IRC channel. The scanner we will be constructing scans at about 650 IP'

    syanbi
    syanbi 2011/04/01
    twistedを利用した非同期処理(はオプション的な意味合いにはなるのかなぁ?)にてssh(22ポート)のパケットをスキャンする内容
  • UnicodeDecodeError/UnicodeEncodeErrorに悩まないPython 2.x プログラミング - atsuoishimoto's diary

    最近、ときどきTwitterで「Python」を検索して眺めていたのだが、Pythonの分かりにくいところとして「UnicodeDecodeErrorが出てうざい」という不満をよく見かけるようだ。 確かに、Pythonでは、数字やアルファベット以外のユニコード文字を使おうとすると、対応する処理を書かなければUnicodeEncodeErrorやUnicodeDecodeErrorが出てしまう。Python3では色々改善されているのだが、Python2では分かりにくい点も多い。 このUnicodeDecodeErrorを見て、「Pythonは日語が苦手だ」と考えてしまう人も多いだろう。確かにそう思ってしまっても仕方がないが、それは正しくない。日人だけでなく、アメリカ人でもフランス人でもドイツ人でも、ユニコードを使う時はみんな等しく平等にこのエラーを出しているのである。 もちろん、慣れてし

    UnicodeDecodeError/UnicodeEncodeErrorに悩まないPython 2.x プログラミング - atsuoishimoto's diary
    syanbi
    syanbi 2011/03/11
    Python 2.x系における文字コード エンコード・デコード(unicodeリテラル <-> バイト列)に関する扱いについて説明をしているエントリ。ためになります。
  • Python Tools for Visual Studio

    すべての Microsoft 製品 Global Microsoft 365 Teams Copilot Windows Surface Xbox セール 法人向け サポート ソフトウェア Windows アプリ AI OneDrive Outlook Skype OneNote Microsoft Teams PC とデバイス Xbox を購入する アクセサリ VR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox とゲーム PC ゲーム Windows ゲーム 映画テレビ番組 法人向け Microsoft Cloud Microsoft Security Azure Dynamics 365 一般法人向け Microsoft 365 Microsoft Industry Microsoft Power Platform Windows 365 開発者

    Python Tools for Visual Studio
    syanbi
    syanbi 2011/03/11
    VisalStudio2010でのPython開発環境について
  • Pythonで学ぶ「詳解 UNIXプログラミング」(その0) - atsuoishimoto's diary

    お勧めのUNIXプログラミングの入門書は?と聞かれれば誰もが挙げるであろう名著 W.リチャード スティーヴンスの詳解 UNIXプログラミング(APUE)。必読書と言っても良いだろう。 "Pythonで学ぶ「詳解 UNIXプログラミング」"シリーズのエントリでは、私自身の復習もかねて、APUEで解説されているサンプルを、Pythonで実装してみたい。 以降の解説では、特に断り書きのない限り ピアソン・エデュケーション社出版の詳解 UNIXプログラミング 新装版をもとに、Ubuntu Linux 10.10上のPython2.7を対象に解説する。他のUNIX/Linuxや異なるバージョンのPythonであっても、ほとんどそのまま流用できるはずだ。 サンプルコードの背景などの解説は行わないので、かならず「詳解 UNIXプログラミング」とあわせて読んでいただきたい。 ところで、APUEの第2版が2

    Pythonで学ぶ「詳解 UNIXプログラミング」(その0) - atsuoishimoto's diary
  • scikit-learn: machine learning in Python

    Simple and efficient tools for predictive data analysis Accessible to everybody, and reusable in various contexts Built on NumPy, SciPy, and matplotlib Open source, commercially usable - BSD license

    syanbi
    syanbi 2011/03/06
    機械学習のためのpythonライブラリ
  • Shibu's Diary: これから魔法使い(プログラマー)になる、新卒者のみなさんへ

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 By erix! under CC-BY これから魔法使い(プログラマー)になる、新卒者のみなさんに、リレーでメッセージを送ろう、ということになりました。一発目として僕が書かせていただきます。 おまえ誰よ? プログラマーです。14歳ぐらいからプログラミングに手を染めて、N88-BASIC、C言語、x86アセンブラ、C++RubyPythonJavaScript、Erlangみたいな感じで勉強しています。まぁ、Erlangはまだまだヒヨコですが。大学を卒業して、技術研究所に就職し、社内SEをしていましたが、今年からDeNAに転職しました。 メインの言語はPythonで、Python温泉系のコミュニティに参加しつつ、日XPユーザグループの代表(あまり仕事できてない)、s

  • あなたの知らないPythonのひみつ - atsuoishimoto's diary

    Pythonでは、ループ・try・withブロックは最大20までしかネストできない。 >>> def spam(): ... while 1: ... while 2: ... while 3: ... while 4: ... while 5: ... while 6: ... while 7: ... while 8: ... while 9: ... while 10: ... while 11: ... while 12: ... while 13: ... while 14: ... while 15: ... while 16: ... while 17: ... while 18: ... while 19: ... while 20: ... while 21: ... print "Deep!" ... SystemError: too many statically n

    あなたの知らないPythonのひみつ - atsuoishimoto's diary
    syanbi
    syanbi 2011/03/01
    これはひどい
  • 【お詫びして訂正】Pythonの粗大ゴミ - atsuoishimoto's diary

    昨夜、Pythonの粗大ゴミというエントリを書いたが、このエントリを公開し、風呂に入ってさて寝ようとした時、ふと気になったことがあった。try-finally付きのジェネレータがgcで解放されないのなら、withブロックも一緒ではないだろうか? あの記事は昔ジェネレータでtry-finallyが使えるようになった時(そう、最初はジェネレータ内でtry-finallyを使うとコンパイルエラーだったのだ)、ふと気になって調べた記憶を元に書いた。あの頃はたぶんまだwith文が無かった頃なので、withブロック中での動きは把握していない。 で、調べてみると、やっぱりwithブロック中のジェネレータオブジェクトが循環参照に含まれていると、try-finallyの場合と同様に解放されない事がわかった。次のようなジェネレータ def uncollectable(arg): with context: y

    【お詫びして訂正】Pythonの粗大ゴミ - atsuoishimoto's diary
    syanbi
    syanbi 2011/02/28
    CPython GCについてのエントリ(他エントリの訂正にあたる)
  • requests

    Unverified details These details have not been verified by PyPI Project links Homepage Documentation Source Meta License: Apache Software License (Apache-2.0) Author: Kenneth Reitz Requires: Python >=3.8 Provides-Extra: security , socks , use-chardet-on-py3 Classifiers Development Status 5 - Production/Stable Environment Web Environment Intended Audience Developers License OSI Approved :: Apache S

    requests
    syanbi
    syanbi 2011/02/25
    requests という名のモジュール。0.2.4だけどまだ2/13に0.0.1をリリースしたばっかで、できたてホヤホヤ
  • Pythonのガベージコレクタは「マーク&スイープ」? - atsuoishimoto's diary

    昨日公開した Pythonのガベージコレクション にこんな突っ込みをいただいた。 マークアンドスイープGCじゃないそうです PythonのGarbageCollection http://www.narihiro.info/translate/garbage_collection_for_python_jp.html 確かに、Pythonで使用しているのは教科書で言うマーク&スイープとは異なるアルゴリズムである。上記のページにあるように、いわゆるマーク&スイープは、ルートオブジェクトと呼ばれる生きていることが確実なオブジェクトを見つけ出し、そこから参照されているオブジェクトをどんどん探り出して、最終的に誰からも参照されていないオブジェクトをあぶり出すというものだ。Pythonではルートからオブジェクトを探すというアプローチを取っておらず、私も会場の説明では「マークアンドスイープの一種」のよ

    Pythonのガベージコレクタは「マーク&スイープ」? - atsuoishimoto's diary
  • Python threads synchronization: Locks, RLocks, Semaphores, Conditions and Queues – Laurent Luce's Blog

    Home Python Python threads synchronization: Locks, RLocks, Semaphores, Conditions and Queues Python threads synchronization: Locks, RLocks, Semaphores, Conditions and Queues This article describes the Python threading synchronization mechanisms in details. We are going to study the following types: Lock, RLock, Semaphore, Condition and Queue. Also, we are going to look at the Python internals behi

    syanbi
    syanbi 2011/02/07
    並列処理(スレッド)に関する Pythonでのtips
  • PyPy faster than C on a carefully crafted example

    Good day everyone. Recent round of optimizations, especially loop invariant code motion has been very good for small to medium examples. There is work ongoing to make them scale to larger ones, however there are few examples worth showing how well they perform. This one following example, besides getting benefits from loop invariants, also shows a difference between static and dynamic compilation.

    syanbi
    syanbi 2011/02/04
    Cより早い・・・別ファイルにあるルーチン呼び出しの場合は、か。これはJITが優秀な例ってことで見ればいいのかな。
  • Writing Forwards Compatible Python Code

    written on January 22, 2011 For web applications the safest bet currently is to stick with Python 2.x even for new projects. For the simple reason that right now we don't have enough supporting libraries for Python 3 yet and porting some of them over is a huge step. But with all the people telling one that it's hard and painful to upgrade to Python 3, how does one make this upgrade easier? For hig

    Writing Forwards Compatible Python Code
    syanbi
    syanbi 2011/01/25
    Python 2.x, 3.x それぞれの互換性を保てるようなコードの書き方についてのエントリ。
  • Metaleks General Surgeon

    If you want something done, you may as well do it yourself. Right? Ever hear that expression before? Only the thing is; not everyone is cut out for DIY work. And they are certainly not cut out for tripping wires. Because that would leave you without a roof over your head. Well, yeah, that could happen. But it doesn’t. And it doesn’t need to. It doesn’t happen to me because I’ve got a handyman in m

    syanbi
    syanbi 2011/01/21
    経験の浅いプログラマ、怠惰なプログラマ、英国のプログラマ、商業プログラマ、Lispプログラマ(末尾再帰のアノテーションについてはぐぐればでてくる)