タグ

pythonに関するsatojkovicのブックマーク (114)

  • Pythonによるデザインパターン(目次) - None is None is None

    これは『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)をPythonに翻訳してみようというシリーズです。 Rubyによるデザインパターン 作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る デザインパターンの原則から 変わるものを変わらないものから分離する インターフェイスに対してプログラムし、実装に対して行わない 継承より集約 委譲、委譲、委譲 必要になるまで作るな(これは「Rubyによる〜」の筆者による) 記事 Template Methodパターン Strategyパターン Observerパターン Compositeパターン Iteratorパターン C

    Pythonによるデザインパターン(目次) - None is None is None
  • PythonとSAXでXMLを扱う - shogo82148's blog

    XMLを扱いたくなったのでメモメモ。 XMLを扱うためのAPIとして、DOM(Document Object Model)を構築する方法と、SAX(Simple API for XML)ってのを使う方法がある。 どちらもW3Cで標準化されているAPIだから、Pythonに限らず、いろんな言語で同じようにXMLを扱うことができる。 HTML上のJavaScriptなんかを触ってると、DOMはよく出てくるね。 DOMとSAXの違いは、DOMはメモリ上にXMLのデータを全部取り込んでから処理をするのに対して、SAXはデータを読み込んだら逐次処理していく点。 DOMは、XMLの構造をツリー構造として扱うことができるから、いろいろ高度なことができる。 ただ、メモリ上に全てのデータを展開するから、メモリをうし、重い。 SAXは、XMLのタグの出現を「イベント」として扱うAPI。 読み込んだデータをメ

    PythonとSAXでXMLを扱う - shogo82148's blog
  • docopt - shkh's blog

    PyCon UK 2012の動画を見てたら面白いもの見つけたのでメモ。 docoptというもので、コマンドラインツールを作るときに、docstringを解析して引数をパースしてくれる優れもの。 http://docopt.org/ docstringのUsageセクションに用例を書いておくとそれを解析してくれる。例えば、 #!/usr/bin/env python # -*- coding: utf-8 -*- """Test Usage: test ship new <name> test ship <name> move <x> <y> [--speed=<kn>] test ship <name> (<from> <to>)... test ship shoot <x> <y> test mine (set|remove) <x> <y> [--moored|--drifting]

    docopt - shkh's blog
  • argparseを使ってみた - そこはかとなく書くよ。

    追記: t2yさんが翻訳してくださいました。 argparseコマンドラインオプションと引数の解析 python 2.7からコマンドラインの引数を解釈するargparseモジュールが標準で入りました。 従来使われてきたoptparseは廃止されます。ただし、広く使われているところから他の廃止されるモジュールとは異なり消されることはなく、警告も標準では出ません。 optparseからargparseに移行する理由や廃止の進め方はPEP 389に記載されています。 以下にPEP 389の和訳を(訳に自信がない場所がありますが)行ないましたので参考にしてください。 http://www.tdoc.info/PEP-ja/389.html というわけで、ざっとargparseの使い方を勉強したのでここに公開します。間違ってたらご指摘ください。 なお、ちゃんとしたドキュメントは http://doc

    argparseを使ってみた - そこはかとなく書くよ。
  • setup.pyの雛形 - 三次元日誌

    だいたい同じパターンで書けるので流用できるようにメモ。 githubとかbitbucketにリポジトリを作ってpypiで公開する想定。 setup.py, README.rst, MANIFEST.inの3つからはじめる。 setup.py #!/usr/bin/env python # coding: utf-8 from setuptools import setup, find_packages import sys setup( name='glbase', # パッケージ名。他と被らないように適当に決める version='0.0.1', description='OpenGL scene graph and utilities', # 短い説明 long_description=open('README.rst').read(), # 長い説明 classifiers=[ #

    setup.pyの雛形 - 三次元日誌
  • Pythonであんまり意識しなかった"return 0"と"sys.exit()"について - 蟲!虫!蟲! - #!/usr/bin/bugrammer

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    Pythonであんまり意識しなかった"return 0"と"sys.exit()"について - 蟲!虫!蟲! - #!/usr/bin/bugrammer
  • setup.pyでコンソールスクリプトを作る - スコトプリゴニエフスク通信

    setup.pyのentry_pointsに、 setup( entry_points=""" # -*- Entry points: -*- [console_scripts] mobilejp_mail_command = mobilejp.mail.command:main """, ) のように、 コマンド名 = モジュール名:関数名 を書いておくと、setup.py installを実行した時に、Pythonホームディレクトリのbinに指定した名称のコマンドが作られる。例えば、Pythonホームディレクトリが/usr/localだとすると、上記のsetup.pyでインストールすると、/usr/local/bin/mobilejp_mail_commandというスクリプトがインストールされる。中身は次のような感じになる。 #!/usr/local/bin/python # EASY

  • SOTA » #PyConJP 2012 で発表されてたCLIプログラムを作成するclimeが良い

    Python Conference Japan 2012 に行ってきました. Mosky Liuさんが発表してたClimeという,pythonの関数をCLIプログラムに変換するモジュールがとても良かった.かなり簡単にCLIプログラムが作れちゃう.講演はここ. docstringに関数のオプションを記述するだけで,それがそのまま関数の引数にマップされる. わざわざ,getoptで引数処理を書いたり,usage()を記述する必要がない.結構,引数処理で振る舞いを変化させるような関数を書くことが多いのでこれは便利と思った.特に解析系のプログラムを書くときなどは重宝するのではかと. まずインストールは 例えば,STRINGをN回表示する関数repeat()をrepeat.pyに作成する. STRINGをコマンドラインから渡し,-n (–time) Nとして表示回数Nを指定する.そして,-f (

  • curlを捨ててhttpieを使おう - Qiita

    jkbr/httpie : Github : HTTPie is a CLI, cURL-like tool for humans curl(see urlと発音するらしい家のFAQによると開発陣は kurl と発音してるらしいです)はプログラムから使うには便利だけど、オプションがわかりにくい。 httpieはより直感的なcurl代替コマンド。よほどcurlに思い入れがない限りhttpieをおすすめする。 インストール 使用例 奥がcurlで、手前がhttpieを使った場合。見れば分かるようにhttpieは自動で色付けをしてくれるし、コマンドもかなり直感的だ。内部的にはPythonrequestsというモジュールを使っている。Python組み込みのHTTPクライアントに辟易している人はそちらも調べてみるととても幸せになれる。 kennethreitz/requests : Github

    curlを捨ててhttpieを使おう - Qiita
  • Pythonを取り巻く開発環境(PyCon JP 2012資料 #pyconjp) - YAMAGUCHI::weblog

    はじめに こんにちは、Python界の情弱です。情弱ながらPyCon JP 2012で1セッション持たせてもらえることになりました。予め資料を公開しておきますので、当日は色々と質問・意見して頂ければと思います。 各トピックは各トピックでの総論になっていますので、細かい部分は文最後の参照にあるリンクを見るとより理解が深まります。 「なおここに書いてある内容は所属する団体とは関係のない、私個人の見解ですので、予めご了承下さい。」テンプレ終わり。 イベント PyCon JP 2012 発表日時 2012-09-16 11:00-11:45 作者 @ymotongpoo URL http://2012.pycon.jp/program/sessions.html#session-16-1100-room357-ja スライド (追記: 2012/09/16 23:50:00) 発表の24:00頃

    Pythonを取り巻く開発環境(PyCon JP 2012資料 #pyconjp) - YAMAGUCHI::weblog
  • NumPy 配列の基礎 — 機械学習の Python との出会い

    NumPy 配列の基礎¶ ここでは,NumPy で最も重要なクラスである np.ndarray について, チュートリアルの方針 の方針に従い,最低限必要な予備知識について説明します. np.ndarray は, N-d Array すなわち,N次元配列を扱うためのクラスです. NumPy を使わない場合, Python ではこうしたN次元配列を表現するには,多重のリストが利用されます. np.ndarray と多重リストには以下のような違いがあります. 多重リストはリンクでセルを結合した形式でメモリ上に保持されますが, np.ndarray は C や Fortran の配列と同様にメモリの連続領域上に保持されます. そのため,多重リストは動的に変更可能ですが, np.ndarray の形状変更には全体の削除・再生成が必要になります. 多重リストはリスト内でその要素の型が異なることが許

  • 割と知られていないような気がするurlparseとoptparse (Python)

    もう12月ですよ。 月日の経つのは早い早い…。 つい先ほど浅草で飲んできました。 一緒に飲んだのはプログラミング大好きな友人(・∀・) 途中、Pythonの話になったので「urlparse」と「optparse」を紹介してみた。 optparseを知っている人は結構いそうだけど、 urlparseは意外と知られていない気がする。 というわけで、簡単に紹介。 urlparseはURL形式の文字列を操作しやすくしてくれるモジュールです。 例えば、↓のような文字列。 ‘http://www.google.co.jp/search?gcx=c&sourceid=chrome&ie=UTF-8&q=googlemap’ これをURLとして扱いやすくしませう。 あ、このモジュールはPython2.6.xからは標準で入っているはず…。 [shell] >>> from urlparse import u

    割と知られていないような気がするurlparseとoptparse (Python)
  • シンプルで覚えやすい仕様,パワフルなPythonのWebアクセスモジュール request | TRIVIAL TECHNOLOGIES on CLOUD

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Pythonには「後方互換性を大切にする」というモットーがあって,時にはそれが裏目に出ることがある。PythonでWebにリクエストを送る時の手法は,目的に応じて複数存在するが,これも後方互換性を守るがために起こっている現象といえる。当初はシンプルな機能を持つモジュールが利用されていて,その後より高度な機能を持つモジュールが追加されたのだが,後方互換性を守るために古いモジュールが残されているのだ。 たとえば,普通にhtppでGETリクエストを送って結果を取得するなら簡単で from urllib import urlopen src = urlopen('http://www.exam

  • inforno :: Python:リストの逆順

    ネットをただよってたらこんなの見つけた。古いのに突っ込んで申し訳ない。 sorted関数とreversed関数 元のリストに副作用を起こさずに得ようと思ったら、 [x for x in reversed(l)] か、・・・ これPython結構やってても知らない人が多い気がする。というかなかなか必要にならない気がする。 1lst = [1,2,3,4,5] 2reversed(lst) 3# => <listreverseiterator object at 0x00B90630> 4lst[::-1] 5#=> [5, 4, 3, 2, 1] リストを非破壊的に逆順にするときってreversed使うんだけど、返ってくるのはイテレータ。 んじゃリストを得るときは、ってなるんだけど lst[::-1] ってする方法があったりする。リストスライスの3つめの値って忘れ去られがちな気がする・・・。

  • Emacsでコード補完にJediを使う (Python)

    昨日ac-python入れてみたんだけど、@kozo2にjediがいいと教えてもらったので、早速使ってみた。 なんも考えないで設定すると/usr/bin/pythonを見ているようで、import errorが起きていたので、JEDI:SOURCE-DIR/env/bin/python に/usr/local/bin/pythonのシンボリックリンク張って解決 それから

    Emacsでコード補完にJediを使う (Python)
  • 日付フォーマット(datetime⇔文字列)

    datetime → 書式化文字列 >>> import datetime >>> now = datetime.datetime.now() >>> now.strftime("%Y/%m/%d %H:%M:%S") '2012/01/01 20:29:39' もしくは、新しい形式のformat関数を使ってもできる。 >>> "{0:%Y-%m-%d %H:%M:%S}".format(now) '2012-10-07 08:15:03' Python3.6以降からはフォーマット済み文字列リテラル(f-string)が使用可能なので、それを使うともっとかんたんにかける。 >>> f"{now:%Y-%m-%d %H:%M:%S}" '2012-10-07 08:15:03' その逆。書式化された日付文字列 → datetime >>> import datetime >>> dateti

    日付フォーマット(datetime⇔文字列)
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 5分でWebスクレイピングをする - YAMAGUCHI::weblog

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

    5分でWebスクレイピングをする - YAMAGUCHI::weblog
  • Python(lxml)でhtmlを処理する まとめ - Gentleちゃれんじ Tips

    Python(lxml)でhtmlを処理する まとめ Pythonにはxml/htmlを取り扱うためのlxmlという便利なサードパーティモジュールがあります。 ここでは、lxmlを使ってhtmlを処理する際に、使えるメソッドなどを簡単にまとめています。 (例がHTML5を使ったものなので気をつけてください。) 初歩的なものを細かくまとめたものは、 「lxmlでhtmlを処理する」にあります。 また、 lxml にある全てのメソッドを紹介しているわけではありませんのでご注意を。 1. htmlの読み込み >>> dom = lxml.html.fromstring(html) >>> dom <Element html at 1967ed8> >>> dom2 = lxml.html.parse('python_tips_003.html') >>> dom2 <lxml.etree._El

  • Python/mechanize - kuro-tech

    ¥¤¥ó¥¹¥È¡¼¥ë† easy_install ¤Î¥¤¥ó¥¹¥È¡¼¥ë mechanize ¤Î¥¤¥ó¥¹¥È¡¼¥ë ↑ easy_install ¤Î¥¤¥ó¥¹¥È¡¼¥ë† ez_setup.py (http://peak.telecommunity.com/dist/ez_setup.py) ¤ò¥À¥¦¥ó¥í¡¼¥É ¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤«¤é°Ê²¼¤ò¼Â¹Ô rem ez_setup.py ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ° cd c:\hoge rem ¥¤¥ó¥¹¥È¡¼¥ë python ez_setup.py Scripts ¥Õ¥©¥ë¥À¤¬¤Ç¤­¤Æ¤¤¤í¤¤¤í¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë Ä̾ï¤Ï Python ¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥êÆ⠥ѥ¹¤ÏÄ̤·¤Æ¤âÄ