タグ

Pythonに関するjoan9のブックマーク (256)

  • Shibu's Diary: Pythonで5分で便利なことをするレシピ

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 あけましておめでとうございます。当は、色々書きたいネタはあるのですが、5分で便利なネタを、ということなので参戦します。 py2exeのお話。Pythonでは、標準でビルドしたり、アーカイブを作ったり、とても便利というか、自分で書くのが面倒な処理をやってくれる、distutilsという便利ライブラリが付いてきます。昔からやっている人は、python setup.py installと呪文のように唱えた経験があるのではないでしょうか?そう、あれです。今時で「easy_installしかやったことないよ!」という方もいると思いますが、このeasy_installもdistutilsの拡張として作られているはずです。 同じようなdistutils拡張に、py2exeというものがありま

    joan9
    joan9 2011/01/05
  • 5分でWebスクレイピングをする - YAMAGUCHI::weblog

    はじめに あけましておめでとうございます。今年もPython界の江古田ちゃんとして頑張っていく所存です。さて id:nishiohirokazu が5分でPythonは便利だと思える記事を元旦から書いていました。 「ほえー、さすが西尾さんや」って思ってたら、西尾さんが「おい山口、5分でPython便利だなーって思える記事書けや」っていう無言の圧力をかけてきたので*1 *2なんとなく書きました。 「5分で」っていうのが読者が読む時間なのか、筆者が書く時間なのかがわからなかったので前者ということにしました。5分で記事とコード両方書くとか無理や。 こんなことないですか 「Webでスクレイピングしたいよー、てへへ。だけど文字コードとかがページごとにバラバラでマジしんどいっす。しかもタグ抜き出すのとかめちゃめんどいっす><」ってことはあったりしませんか? リンクのタイトルとかも綺麗に抜き出したいなー

    5分でWebスクレイピングをする - YAMAGUCHI::weblog
  • Pythonで5分で便利なことをするレシピ - 西尾泰和のはてなダイアリー

    5分でわかる Python を知らない人が Python の便利さを学べる記事をかいたよ | HIROKI.JPが、Pythonの説明なのにところどころ「Rubyでは」になっていたり、そもそも無理やりPHP的なことをしようとしていていまいちなのでTwitterでひどいなぁと言っていたら @bellonieta: ここは是非とも@nishioさんに正しい5分記事を書いてもらいたいところ… と言われてしまった。まー、ぼやくのは生産的じゃないからねぇ。Pythonを使ってて色々便利なことはあるけど、一番手軽そうなものを軽く説明してみよう。たとえばなんか書類をつくっているとするじゃない、こんな感じの。 社長: 山田太郎 支社長: 田中一郎 部長: 山川三郎面倒なので3人分しか書いてないけど当はもっとたくさん30行くらいあるとしよう。さー書けた、と思ったらそこに上司が来て「あーあー、そうじゃないよ

    Pythonで5分で便利なことをするレシピ - 西尾泰和のはてなダイアリー
    joan9
    joan9 2011/01/03
  • Google App Engineで動くBlogツールcoreblog3のアルファをリリース | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー このブログをドライブしているcoreblog3のアルファバージョンをリリースしました:-)。 実働はしているし,そこそこのアクセスを受けても問題ないレベルだけれども,これから仕様変更が入ってデータの手動コンバートなどが必要になる可能性があります。そもそもドキュメンテーションもないので,相当腕に自信があるとかでないかぎり,プロダクション環境での運用は避けるべき。 インストールは簡単なので,開発環境で動かして遊ぶ程度ならぜんぜんOKです。 coreblog3のベースになっているフレームワークAhaにはプラグインシステムが内蔵されていて,たとえばTwitterのOAuth認証用のプラグインな

  • Python のいいところ/わるいところ - tokuhirom's blog

    Python のいいところ/わるいところ PyJUG のイベントのパネルによばれたので話してきた。事前にかんがえておいたメモを以下にコピペしておきますね。 いけてるところ - indent acme - pep - method の export - class の定義のやりかたがきまってる - interpreter のコードがよみやすい - 標準添付ライブラリがおおい - IDE が意外とつかえる - import とか - generator とか - デコレータとか - perl6はでないけどpython3はでたよね いけてないところ - インデント - ワンライナーとかかきづらい - ソースコードフィルタ - 正規表現リテラルがない - へびがきもい? 最後のやつ逆になってたのでなおした。 Published: 2010-12-09(Thu) 04:33

    joan9
    joan9 2010/12/15
  • IronPythonのJim Hugnin氏,Microsoftを去りGoogleへ | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 元記事 : Farewell To Microsoft IronPythonを開発していたJim Hugnin氏がMicrosoftを去り,Googleに行くようです。 彼はJava VM上でPythonの実行環境を実装したJythonの作者でもあります。Microsoftで氏は,IronPythonだけでなく,.NET上で軽量言語を走らせるためのDynamic Language Runtime (DLR)も作っていました。IronRubyなどもDLRの恩恵があって実装されています。 また,ほぼ同時に,MicrosoftがIronPython,IronRubyへの直接投資を打ち切ること

  • Python Workshopでしゃべってきました - 西尾泰和のはてなダイアリー

    IIJの会場が広くてびっくり。あの人数で電源もWifiも使えるのはかなり素晴らしい。 帰ってきたPython Workshop 2010/12 眠いので続きはあとで。 - パネルセッションについて @takahashim 言いそびれましたが、とりあえず他の言語も試してみると、普段使ってる言語の長所短所が分かっていいですよ あっ、僕も言いそびれた! あと「Pythonのいいところを言えと?そんなナルシストなこと出来ないですよ、、でも、あえて言うなら…インデントですかね」は、先に喋った人がインデントをほめているのを踏まえての天丼ネタです。インデントをほめる予定はなかった、というか、順番が区切られてると思ってなかったので誰かがPythonをほめるたびに僕がPythonをDISってれば、みんなが必死にPythonをほめて僕が論破されて「結論:Pythonはすばらしい」になると思ってた(ぇ 「人は見

    Python Workshopでしゃべってきました - 西尾泰和のはてなダイアリー
    joan9
    joan9 2010/12/11
  • 関数型プログラミング HOWTO — Python v2.6.2 documentation

    (これは下書きです。原文に関するコメント/間違い報告/提案は英語で amk@amk.ca まで。) この文書では、関数型スタイルでプログラムを実装するのにピッタリな Python の機能を見てまわることにしましょう。まず関数型プログラミングという概念を 紹介したあと、 iterator や generator のような言語機能、 および itertools や functools といった関連するライブラリ モジュールを見ることにします。 はじめに¶ この章は関数型プログラミングの基概念を説明します; Python の言語機能についてだけ知りたい人は、次の章まで飛ばしてください。 プログラミング言語とは問題を分解するものですが、 各言語がサポートする分解方法にはいくつかの種類があります: ほとんどのプログラミング言語は 手続き型 です: プログラムは、 入力に対して行うべきことをコンピュ

    joan9
    joan9 2010/12/06
  • len が関数になっている理由 - methaneのブログ

    http://d.hatena.ne.jp/pashango_p/20090702/1246550203 len()がリストのメソッドでないのも同じ理由です。 オブジェクト指向的に考えれば、リストのメソッドであるべきなのに、わざわざビルトイン関数にしたんです。 「オブジェクト指向的に考えれば、リストのメソッドであるべき」って感じで、オブジェクト信者はそれが正義みたいに考えちゃうんだろうね・・・ Pythonは合理主義。「オブジェクト指向的に○○」よりも、一貫した少なくて明確なルールを重視する。 len() が .length() メソッドだったらどうなるか。あるコンテナは .length() の代わりに、 .len() や .size() という名前を使ってしまうかもしれない。「サイズを取るメソッドは.length()」という 暗黙のルールができてしまい、そのルールが頭に入っていない人が一

    len が関数になっている理由 - methaneのブログ
    joan9
    joan9 2010/12/04
  • 日本語のdocstringはunicode literalで書こう - methaneのブログ

    # coding: utf-8 def foo(): """ほにゃらら""" 一般的にdocstringと言われていて標準的に使われるドキュメント形式なんだけど、上記のように通常の文字列として書いた場合は (Python 2.xでは) byte string になり、utf-8でエンコードされているという情報が抜けてしまう。 当然のように、非ASCIIなbyte stringは慎重に扱わないと、すぐにUnicodeErrorになる。 from __future__ import unicode_literals をするか、 u"""ほにゃらら""" と書くべき。 例えば、Trac-ja が設定項目のdocstringをbyte stringで書いていて、iniadminというプラグインをインストールすると、docstringを表示しようとしてUnicodeDecodeErrorになる。Tr

    日本語のdocstringはunicode literalで書こう - methaneのブログ
    joan9
    joan9 2010/12/04
  • Pythonは他の言語の慣習の持ち込みを嫌う - methaneのブログ

    拡張引用構文覚えた! こういう経験があると、たかが「List = list」ごときで何を大げさなと思ってしまうけど、Pythonista的にはこういうのも受け入れられないんだろう。 Pythonistaはtypedefすら拒絶する? (Re: Python での組み込み型をより自然な名前にする) - kなんとかの日記 Pythonは一貫性を重視する言語なので、他の言語の慣習を持ち込んで一貫性を崩すことに対するアレルギー反応が強い。 前にも書いたけど、Pythonのtype名が小文字始まりであることについては、特に技術的な利点とかそういうのがあるわけじゃなくて、単に最初の仕様がそうであって、それがそのまま継続されているっていうだけだよね? (違ってたら教えてください) だから大文字始まりのエイリアスを作るぐらい、そんなに目くじらを立てることとは思えない。それなら「typedef unsign

    Pythonは他の言語の慣習の持ち込みを嫌う - methaneのブログ
    joan9
    joan9 2010/12/04
  • そんなに Array.join がいいのか - methaneのブログ

    「(ruby|javascript)でstr.join(array)、pythonでlist.join(str)」http://blog.livedoor.jp/dankogai/archives/51226075.html ここではlistを継承したListクラスをこさえて、そこにjoinメソッドを追加しているが、listに直にメソッド追加する方法はないのだろうか.... 多分できない。 PythonPerl,Rubyに比べて、上の方は同じくらい柔らかいんだけど、下の方は堅い。 Unicodeのことまで考慮に入れて実装したために、実装がずいぶんと泥臭いものになっている。 join したいものが一種類ではないというのが、 join が list のメソッドでない理由の一つだからね。 str()はUnicodeをうと例外をお吐きになる。それでいて"dankogai" + u"小飼弾"はu

    そんなに Array.join がいいのか - methaneのブログ
    joan9
    joan9 2010/12/04
  • len が py3k でも 関数のままである理由 - methaneのブログ

    結局は http://d.hatena.ne.jp/methane/20090702/1246556675 なんだけど、ソースを提示しておく。 まず、Python FAQにはこんな風に書いてある。 http://www.python.org/doc/faq/general/#why-does-python-use-methods-for-some-functionality-e-g-list-index-but-functions-for-other-e-g-len-list The major reason is history. Functions were used for those operations that were generic for a group of types and which were intended to work even for objects t

    len が py3k でも 関数のままである理由 - methaneのブログ
    joan9
    joan9 2010/12/04
  • ビルダーメソッドを作るときはstaticmethodよりもclassmethodを使おう - methaneのブログ

    Javaだとよくビルダーメソッドをstaticで定義するけど、Pythonの場合はできるだけクラスメソッドを使った方が良いだろう。 例えば、float.fromhex http://docs.python.org/library/stdtypes.html#float.fromhex はクラスメソッドなので、 >>> class Foo(float): ... pass ... >>> foo = Foo.fromhex('0x1p-1') >>> type(foo) <class '__main__.Foo'> ビルダーメソッドを子クラスでも利用できる。 もちろん、ビルダーメソッドが子クラスでも妥当であるかどうかは子クラス次第なんだけど、妥当でない場合は子クラスでオーバーライドしたらいいだけの話なので、子クラスでも使えるようにクラスメソッドにしておいて損は無い。

    ビルダーメソッドを作るときはstaticmethodよりもclassmethodを使おう - methaneのブログ
    joan9
    joan9 2010/12/04
  • Pythonの配列操作 - methaneのブログ

    いまさらだけど、 http://0xcc.net/blog/archives/000043.htmlPython の部分を添削。 len(a) == 0 は、 if a: のようにリスト自体が空の時に偽になるので使わない。 a.pop(0) は del a[0] とも書ける。どちらでも良いが、多分属性参照が無い分 del の方が高速 a[:] = [] も同じく del a[:] a.remove(x) ※最初の一つしか削除されない は、すべてのxを削除したいなら a = [y for y in a if y != x] del(a[i]) は、 del が関数ではないので del a[i] と書く。 Ruby の a.uniq は、ソート済みに対する操作じゃないよね? 重複を削除するだけなら set(a) でいけるけど、順序の保存が必要なら z = []; for x in a:

    Pythonの配列操作 - methaneのブログ
    joan9
    joan9 2010/12/04
  • Pythonのメタプログラミング (メタクラス) を理解したい人のための短いコード片と禅問答 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Pythonのメタプログラミング手法の一つ「メタクラス」は,初心者にとっては「なんか強そう/経験値たくさんもらえそう」なアイテムの最右翼だと思う。反面「どうすればいいか/なにができるか」ということがなかなか理解しづらい。 英語のブログを見ていたら,メタクラスの理解に役立ちそうなちょうどよいサンプルを見つけたので,紹介がてら独自の解説を付け加えたいと思います。 メタクラスを簡単に説明すると,「来コードを書かなければ実現できないような処理を黒魔術的な処理でなんとかしちゃう」ためのテクニックです。コード量を(時には劇的に)減らすことができたり,すっきりした見通しの良いクラス設計を実現できま

  • ((Pythonで) 書く ((さらに良い) Lisp) インタプリタ)

    ((Pythonで) 書く ((さらに良い) Lisp) インタプリタ) Peter Norvig / 青木靖 訳 前のエッセイでは、90行のPythonコードでシンプルなLispインタプリタを書く方法を示した(lis.py)。このエッセイでは、3倍込み入っているが、より完全なlispy.pyを実装しよう。それぞれの節で1つの機能追加を扱っている。 (1) 新しいデータ型 - 文字列、論理型、複素数、ポート Lispyへの新しいデータ型の追加は3つの部分からなる。データの内部表現、それを扱う手続き、読み書きのためのシンタックスだ。ここでは4つの型を追加する(入力ポート以外はPythonのネイティブ表現をそのまま使う)。 文字列 文字列リテラルはダブルクォーテーションで囲まれる。文字列の中で \n は改行を、\" はダブルクォーテーションを意味する。論理型  構文 #t と #f はTrue

  • ((Pythonで) 書く (Lisp) インタプリタ)

    Peter Norvig / 青木靖 訳 このページには2つの目的がある。コンピュータ言語の実装について一般的な記述をすることと、Lispの方言であるSchemeのサブセットをPythonで実装する具体的な方法を示すことである。私はこのインタプリタをLispy (lis.py)と呼ぶ。何年か前に私はJavaとCommon LispでSchemeインタプリタを書く方法を示した。今回の目標は、アラン・ケイが「ソフトウェアのマクスウェル方程式」と呼んだところの簡潔さと取っつきやすさを可能な限り実現するということだ。 SchemeのサブセットLispy の構文と意味論 コンピュータ言語の多くは様々な構文的な決まり(キーワード、中置演算子、カッコ、演算子優先順、ドット記法、セミコロンなど)を持っているが、Lisp族言語の1つとして、Schemeの構文はすべてカッコ付きの前置記法であるリストを基とし

  • pydocのモジュール名を補完するZsh補完関数対応Hack | hexacosa.net

    Big Sky :: perldocのbash-completionが激しく便利でうれしょん出た。 の Hack(まぁ正確に言うとperldoc-completeの紹介ですが。)が渋い感じなので、 Zsh+pydocでできんかなと。 perldocのモジュール補完はZshではすでに対応できていたので、 pydocのモジュールでも同じようなことがしたい!と。 かなり間に合わせな感じですが、以下のような手順で対応できます。 $ locate _pydoc : : /usr/share/zsh/functions/Completion/Unix/_pydoc $ cat /usr/share/zsh/functions/Completion/Unix/_pydoc #compdef pydoc local context state line typeset -A opt_args _argum

  • Android端末による自動通訳を一行のPythonコードで実装する

    最近このブログではAndroidのSL4Aネタが多いのだけど、それだけ遊べるのだから仕方がない。SL4AのPythonを使えば実質一行で自動通訳プログラムを作ることもできる。日語で喋った文章が翻訳されて英語の音声で返ってくる。 import android,urllib,urllib2,simplejson;droid=android.Android();droid.ttsSpeak(simplejson.loads(urllib2.urlopen('http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=%s&langpair=%s%%7C%s'%(urllib.quote(droid.recognizeSpeech().result.encode('utf-8')),'ja','en')).read())

    Android端末による自動通訳を一行のPythonコードで実装する