タグ

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

タグの絞り込みを解除

Pythonとpythonに関するblueleのブックマーク (1,220)

  • Streaming APIで取得したつぶやきの処理方法

    かつて、Streaming APIで大量のつぶやきをリアルタイムに「保存する方法」を紹介しました(cURL編・Python編)。つぶやきはJSON形式で保存していましたが、そこから何かを見出すためにはまず、JSON形式のデータを処理できなければなりません。ここではその方法を確認します。 Pythonで簡単に処理する方法を、@nokunoさんが紹介しています(Twitter Streaming APIの使い方)。cURLで取得したつぶやきは、1行に1つずつファイルに格納されるので、次のように1行ずつ取り出してJSONデータをパースすればいいようです(ここではtweet['text']、つまりつぶやきの文だけを取り出しています)。 #!/usr/bin/env python import sys, json for line in sys.stdin: tweet = json.loads(

  • B木 - naoyaのはてなダイアリー

    昨年から続いているアルゴリズムイントロダクション輪講も、早いもので次は18章です。18章のテーマはB木(B Tree, Bツリー) です。B木はマルチウェイ平衡木(多分木による平衡木)で、データベースやファイルシステムなどでも良く使われる重要なデータ構造です。B木は一つの木の頂点にぶら下がる枝の数の下限と上限を設けた上、常に平衡木であることを制約としたデータ構造になります。 輪講の予習がてら、B木を Python で実装してみました。ソースコードを最後に掲載します。以下は B木に関する考察です。 B木がなぜ重要なのか B木が重要なのは、B木(の変種であるB+木*1など)が二次記憶装置上で効率良く操作できるように設計されたデータ構造だからです。データベースを利用するウェブアプリケーションなど、二次記憶(ハードディスク)上の大量のデータを扱うソフトウェアを運用した経験がある方なら、いかにディ

    B木 - naoyaのはてなダイアリー
  • Python/C API Reference Manual Guido van Rossum Corporation for National Research Initiatives (CNRI) 1895 Preston White Drive, Reston, Va 20191, USA E-mail: guido@CNRI.Reston.Va.US, guido@python.org December 31, 1997 Release 1.5 Copyright c 1991-1995 by S

  • PyObject の基礎

    話すこと¶ C で OOP を作るには? そもそも OOP って? C ではどうするの? Python ではどうしてるの? お前, 誰よ?¶ @cocoatomo B2B の基幹業務パッケージを作る会社 研究開発部門みたいなとこ 普段は Java 使い Python との出会い: 仕事で Jython Python document の翻訳やってます http://code.google.com/p/python-doc-ja/

  • tempfile – 一時的なファイルシステムリソースを作成する - Python Module of the Week

    多くのプログラムで中間データを書き出すためにファイルを作成する必要性に迫られます。アプリケーションを壊したい攻撃者に推測されないように、セキュアでユニークな名前のファイルを作成することはプログラマの手腕を問われるところです。 tempfile モジュールはセキュアなファイルシステムリソースを作成するための機能を提供します。 TemporaryFile() は無名ファイルをオープンして返します。 NamedTemporaryFile() は名前のあるファイルをオープンして返します。 mkdtemp() は一時的なディレクトリを作成してその名前を返します。 TemporaryFile¶ あるアプリケーションがデータを保存するために一時的なファイルが必要な場合でも、その一時ファイルを他のプログラムと共有する必要はありません。一時ファイルを作成するために最適な選択は TemporaryFile()

  • 6.26 shutil -- 高レベルなファイル操作

    6.26 shutil -- 高レベルなファイル操作 shutilモジュールはファイルやファイルの収集に関する多くの高レベ ルな操作方法を提供します。特にファイルのコピーや削除のための関数が用意さ れています。 注意: MacOSにおいてはリソースフォークや他のメタデータは取り扱う ことができません。 つまり、ファイルをコピーする際にこれらのリソースは失われたり、ファイルタ イプや作成者コードは正しく認識されないことを意味します。

  • Pythonのwith構文と__enter__、__exit__ - hylom's

    programming, open source, os, and a handful of tips Pythonのwith構文がいまいち掴めなかったので、ざっとまとめてみた(いまさらながら)。ドキュメントはPython リファレンスマニュアルの7.5 with 文にある。 withを使ったコード例は、下記のような感じ。 c = ClassHogeHoge() with c: c.foobar() 上記のコードは、下記と等価となる。 c = ClassHogeHoge() c.__enter__() c.foobar() c.__exit__() つまり、withに続くインデントブロックを実行する前に指定したオブジェクトの「__enter__()」メソッドを呼び出し、実行後に「__exit__()」メソッドが暗に呼び出される、という仕組み。 __enter__()と__exit__(

  • 4.4 difflib -- 差異の計算を助ける

    4.4 difflib -- 差異の計算を助ける バージョン 2.1 で 新たに追加 された仕様です。 class SequenceMatcher 柔軟性のあるクラスで、ハッシュ化できる要素の連続であれば、 どんな型のものであっても比較可能です。基礎的なアルゴリズムは 可塑的なものであり、1980年代の後半に発表されたRatcliffとObershelp によるアルゴリズム、大げさに名づけられた``ゲシュタルトパターン マッチング''よりはもう少し良さそうなものです。その考え方は、 ``junk''要素を含まない最も長いマッチ列を探すことです(Ratcliffと Obershelpのアルゴリズムではjunkを示しません)。このアイデアは、 下位のマッチ列から左または右に伸びる列の断片に対して再帰的に あてはまります。これは小さな文字列に対して効率良いものでは ありませんが、人間の目からみて

  • Pythonのdifflibモジュールを用いて複数行テキストどうしの差分を取得する跡地 - 試験運用中なLinux備忘録・旧記事

    (2021/10/13)記事は「Pythonのdifflibモジュールを用いて複数行テキストどうしの差分を取得」へ移動した。

    Pythonのdifflibモジュールを用いて複数行テキストどうしの差分を取得する跡地 - 試験運用中なLinux備忘録・旧記事
  • Python2.6のC拡張モジュールを使ってオブジェクトをCで書いてみた(3) - nabeyangの日記

    前回までにオブジェクトにメソッドを追加する以外のことはやったので、ここではメソッドを追加してあげましょう。テストはtestStringに書いてありました。コメントアウトされてる部分を元に戻します。 def testString(self): s = String.new('abc') self.assertEqual(3, s.length) self.assertEqual('abc', s.c_str()) self.assertEqual('returns string', s.c_str.__doc__)#追加 c_str()なんてメソッドは追加してませんから、string_getattrがエラーを出します。Cの方を変更しましょう。 struct String { PyObject_VAR_HEAD int length; //文字列の要素を入れます。メモリを確保するときに、siz

    Python2.6のC拡張モジュールを使ってオブジェクトをCで書いてみた(3) - nabeyangの日記
  • Python2.6のC拡張モジュールを使ってオブジェクトをCで書いてみた(2) - nabeyangの日記

    前回はコンストラクタを定義しました。次はgetattrを定義して、フィールドにアクセスするところまで進めます。テストの方は、testStringを復活させます。 def testString(self): s = String.new('abc') self.assertEqual(3, s.length) # self.assertEqual('abc', s.c_str()) Stringのコンストラクタは引数を取るように変更して、lengthフィールドを追加するということになります。Cの方は次のように変更を加えます。 // 構造体にlengthを追加 struct String { PyObject_VAR_HEAD int length; }; ... //Stringオブジェクトのgetattr関数として登録されます。メソッド及び、フィールドの //アクセスもこの関数を元に処理さ

    Python2.6のC拡張モジュールを使ってオブジェクトをCで書いてみた(2) - nabeyangの日記
  • Python/最初のころに書いたやつ

    まわりではやりはじめてるというのもあるんですが、 バイリンガルになるためにイチから、Pythonを勉強していきます。 なにやら、いろいろできそうな雰囲気はあります。 無謀にも参考書なしでやろうとしています。 うんちく関連は他のサイトにまかせて、 とにかくコードを書いてためしていくという方針です。 一日2個くらいずつ、気分転換にプログラムを書いていってみようかと思います。 この文書が初心者の方の参考になれば嬉しく思います。 ただいまの技術力:★★☆☆☆ もっと関数 引数をとらず、返り値を持たない関数だけでなく、 その他のタイプについてもやってみます。 PyArg_ParseTupleAndKeywordsとかいうのも、あるんですけど 当面、利用価値がなさそうなので、無視します。 結果として、以下のような課題が残りました。 今の知識では解決不能なので、とりあえず、放置して先に進みます。 やり

  • Python2.6のC拡張モジュールを使ってオブジェクトをCで書いてみた(1) - nabeyangの日記

    C拡張モジュールの例として、helloworldをstringオブジェクトとして返すような簡単な例は見ますが、ユーザー定義オブジェクトをC言語で実装するような例は見つかりませんでした。Makefileはhelloworldモジュールを作るときと変わらないので省略します。最低限のオブジェクトを定義するためには、コンストラクタの追加、メソッドが追加、フィールドの追加ができたら良いと思います。これらの作業をするために、自作文字列モジュールStringを書くことにします。テストケースとしては次のようなものをパスすれば良いでしょう。 #!/usr/bin/python import String import unittest class StringTest(unittest.TestCase): def testString(self): s = String.new('abc') self.a

    Python2.6のC拡張モジュールを使ってオブジェクトをCで書いてみた(1) - nabeyangの日記
  • 西尾泰和のブログ @ Cybozu Labs: Python拡張の作り方

    いくつかの落とし穴をよければ意外と簡単だったので、 この文章を必要としている誰かのために整理してみることにします。 追記: おびなたのはてな日記 - distutils with boost.pythonで詳しく説明されているように、C++とBoostを使うともっと楽になるようです。近いうちに試してみます。 また、 Cybozu Developer Network: Python調査報告 (2006/10) によれば 「PEAKの setuptools は distutils の拡張で(中略)distutils の上位互換であるため、setuptools を使用しない理由はありません。積極的に使用しましょう。」とのことなのでこちらも試してみたいと思います。 Cのコードを用意する 書き換えるべき所を明確にするために、 [[MODULE_NAME]]というように表記しました。 同じ名前の括弧に

  • Python3 Advent Calendar - Pythonで2/3両方で動くコードを書く(C/API) - Doge log

    これは Python3 Advent Calendarの記事です。 こんにちわ、高校生です。 先日、子供(遼くん)が無事生まれましたが、毎日お世話で忙しいです。 Python3 Advent Calendar ということでPython3に関して書いてみたいと思います。 Python3対応というのはまあいろいろあるんですが、Pure Pythonで両方動くコード書こうとなると文法とかいろいろ面倒ですね。 ですがC/APIで書くとマクロで大きく処理を2系、3系と切り替えができるのでので容易に両バージョンをサポートするコードが書けます。 ということで2/3両方をサポートするコードをC/APIを中心に幾つか書いてみたいと思います。 (3系といっても3.2以降と思ってください) Python3の判別 Python3であるかどうかは元々用意されているPythonのバージョンを確認できるマクロで容易に判

    Python3 Advent Calendar - Pythonで2/3両方で動くコードを書く(C/API) - Doge log
  • サービス終了のお知らせ

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

  • Pythonを高速化しよう! - gumi Engineer’s Blog

    はじめまして、gumiの津村です。 現在は解析系の仕事をしたり、ツールを作ったりしています。 今回の話は高速化についてです。 結構長めの文章です。 目次 実行速度の高速化 Python/C API ctypes Pyrex Cython SWIG その他 纏め 実行速度の高速化 高速化といっても色々ありますが、今回は実行速度の高速化についてです。 弊社ではPythonを全面的に採用していますが、そもそもLLは実行速度が遅い言語です。特にC言語のようなコンパイラ系の言語と比べると非常に遅いです。 それでもLL系の言語がここまで使われるようになったのは、開発効率が良いからです。 もはや常識ですね。 しかし、それでも特定の領域ではどうしてもPythonのようなLL系言語では厳しい部分も出てきます。 アルゴリズムを変更しても、ハードウエアを変えても、無理な物は無理です。 速度に問題がある場合の最適

    Pythonを高速化しよう! - gumi Engineer’s Blog
  • Hello Cython World – taichino.com

    lxmlのソースを読もうとしたらcythonというPythonの拡張を書くためのPythonとCの間の子みたいな言語で書かれているという事で、全く知らないままだとlxmlのソースに挑む気が起こらなかったので少し調べてみました。まぁ調べてみたといってもcythonのドキュメントの最初に書かれているGetting Startedを舐めただけなんですけども。 まずcythonをインストールします。 $ easy_install cython そして恒例のhello worldは以下になります。拡張子は.pyxを使うようです。 # hello.pyx def say_hello_to(name): print 'Hello %s' % name どう見てもPythonのコードなので楽勝なのですが、これを使えるようにsetup.pyを書かねばなりません。少しだけ面倒ですね。以下のように基は通常のs

  • Python インタプリタの拡張と埋め込み — Python 2.7ja1 documentation

    このドキュメントでは、Python インタプリタを拡張するために C/C++ でモジュールを書く方法について述べます。拡張モジュールでは、新たな関数を定義できるだけでなく、新たなオブジェクト型とそのメソッドも定義できます。このドキュメントではまた、Python インタプリタを別のアプリケーションに埋め込み (embedding)、拡張言語として使う方法についても述べます。また、動的に(実行時に)拡張モジュールをロードする機能をOSがサポートしている場合に、動的ロード可能な拡張モジュールをコンパイルしてリンクする方法を示します。 このドキュメントでは、読者は Python について基礎的な知識を持ち合わせているものと仮定しています。形式ばらない Python 言語の入門には、 Python チュートリアル を読んでください。 Python 言語リファレンス を読めば、 Python 言語につ

  • programming/python/C言語でPython拡張 - PukiWiki

    2008-07-20 - subversion 2008-07-08 - Kubuntu 2008-07-04 - scipy 2008-05-25 - apache 2008-05-09 - ctypes 2008-04-26 - ファイルシステム - Linux - ループバックデバイス 2008-04-21 - コマンド 2008-04-03 - emacs 2008-03-17 - itertools 2008-03-14 - python - RecentDeleted - cvs 2008-03-10 - .bashrc 2008-02-06 - PIL 2008-01-21 - cron 2008-01-17 - popen2 2008-01-12 - sip 2008-01-10 - 初級編 C言語によるPython拡張 Pythonは書き