python

ndbでDISTINCTなSELECTをするには

DISTINCTのやり方 import pprint from google.appengine.ext import ndb from src.models import my_model #というモジュールがあるとして query = my_model.MyClass.query( projection=[ my_model.MyClass.property1, my_model.MyClass.property2 ], distin…

PySideインストール on Windows

PySideのインストール手順 1.Pythonのインストール(割愛) 今回はPython2.7を入れてある環境でやってる。2.pipのインストール このファイルをダウンロードする。 コマンドラインから、pythonインタープリタでダウンロードしたpyを実行する。 python get-pip…

リストを逆順に並べ替えるreverse()メソッドには戻り値がない

リストを逆順に並べ替えるにはいくつか方法があるが、そのうちの リストオブジェクト.reverse()であるが、これって、逆順に並べ替えた結果を返すfunctionなのではなく、リストオブジェクトの中身を実際に並べ替えてしまうmethodなんですね。 つまり、こうい…

ウェブブラウザの自動テストにおいて、クリックできない場所にあるエレメントはclick()できない

タイトルだけ見ると、当たり前すぎて何言ってんの感があるわけだが。こんなWebページがあるとする・・・クリッカブルマップがあり、そのマップ上の地点をクリックすると、その地点に関するとあるデータがダウンロードできるようなWebページが。 この地点が膨…

文字コードがUTF-8のCSVファイルを読み込む

絶対忘れるので書いておく。まず、pythonでcsvを読み込むには、csv.reader() を使う。 これは、1行分のデータが配列になって帰ってくるものなので、項目の何番目は何の項目、ってのを自分でわかっている必要がある。次に、csvファイルの先頭行をヘッダとして…

ゼロ埋め方法いろいろ

いつも忘れるので備忘。 数値のゼロ埋め方法。 val = 123 #推奨 "{0:0>5}".format(val) #古い方法 "%05d" % val #いったん文字列にする str(val).zfill(5) #いったん文字列にする。埋め草を指定できる str(val).rjust(5, "0")

コーディング スタイルガイド 抜粋

自分用に抜粋。 ファイル名は、小文字+アンスコ形式。 クラス名はPascal形式(単語の先頭を大文字、アンスコ使わない)。 グローバル変数は、小文字+アンスコ形式。 定数は、大文字+アンスコ形式。 メソッド・関数は、小文字+アンスコ形式。 ローカル変…

関数へ引数を参照渡しできない件について

言い古された話ではあるようですが、pythonは、基本的に、値渡しです。たとえば、3つぐらい配列があって、関数にその3つの配列のガワを渡して、関数の中でappendしてほしいよ、てな時どうするかというと、戻り値をタプルとして複数返せることを利用するの…

タプル げに素晴らしい

お題:YYYY/MM/DD形式の日付文字列を、年・月・日に分割する dateStr = '2014/07/31' yy, mm, dd = dateStr.split('/')なんと簡単なんだ...

%Y-%m-%dT%H:%M:%S の T って何なの

GAEのbulkloaderがらみで疑問に思ったこと。bulkloader.yaml に、date型のプロパティに、 transform.import_date_time(%Y-%m-%dT%H:%M:%S) という初期値がセットされていた。この書式部分の仕様は、Python の strptime() に渡す書式と同一だそうで、 http://…

取得した要素(タグ)の属性にアクセスする

こんな感じのHTMLがあったとしよう。 hoge.html <html> <head> ・・・ </head> <body> 選択してください。 <select id='hoge'> <option value="#" selected>全て</option> <option value="001">区分1</option> <option value="002">区分2</option> <option value="003">区分3</option> </select> <body> </html>このHTMLから、optionタグに入っているコードと名称を取ってきたい。 名称は、タグの中…

os.path._getfullpathname()

macで作業していたら、次のコードがエラーになった。 class MainPage(webapp.RequestHandler): def get(self): #テンプレートページ(index.html)にデータを流し込みつつ表示する page_contents = { 'dateFrom': '2009/10/29', 'dateTo': '2009/10/29' } path…

外部モジュールが読み込めない(その3)

前回、あまりにも安直過ぎる方法で逃げたので、もう少しマシな状態にしてみる。 自分の場合、新しいプロジェクトを作るときは、Aptanaの「新規⇒プロジェクト追加」からやっているのだが、そうすると、プロジェクトの直下にsrcというフォルダが作られるので、…

外部モジュールが読み込めない(その2)

この日に行った設定のまま、数日動かさずにいたら、またimportできなくなっていた。何も変えていないつもりだったのだが。 なんでだ。 コマンドプロンプトでPython.exeを動かしてみる。 C:\Python.exe >>>import BeautifulSoup 特にエラーにならない・・・or…

グラフに挑戦(2) ローソク足グラフ

同じように、今度はローソク足グラフを出力。 渡すデータの形は、(time, open, close, high, low, ...) という並びのリスト。 # coding: utf-8 ''' 簡単なグラフ作成テスト ''' import datetime import pylab import matplotlib.dates import matplotlib.fin…

グラフに挑戦(1) 線グラフ

グラフ描画に挑戦してみる。使うのはmatplotlib。matplotlib本体は、上記リンクからダウンロードして入手。 さらに、numpy も必要なので、こちらから入手。まずは、普通のPythonプロジェクトのサンプル。必要最低限のコード。 # coding: utf-8 ''' 単純な線…

外部モジュールが読み込めない

BeautifulSoupを使うために、BeautifulSoup.pyを、Pythonインストールフォルダ配下のLib/site-packagesの下に配置したのだが、環境変数PYTHONPATHに、site-packagesが含まれているにもかかわらず、importしようとすると、見つからないというエラーになってし…

文字列⇒日付変換

文字列を日付型に変換する方法。 >>> #coding: utf-8 ... >>> import datetime >>> import time >>> dd = '2009年10月21日' >>> st = time.strptime(dd, '%Y年%m月%d日') >>> dt = datetime.date(st.tm_year, st.tm_mon, st.tm_mday) >>> print dt 2009-10-2…

文字列⇒数値変換

文字列⇒数値変換は、ビルトイン関数のint()、float()でできるとのこと。 しかし、カンマ区切り文字列だと変換してくれない。 >>>str = '123,456.12' >>>fl = float(str) Traceback (most recent call last): File "", line 1, in ValueError: invalid litera…

文字コード

ソースコードに日本語でコメントを書いたら、コンパイルエラーになった。 ソースコードの冒頭に # coding: utf-8 の1文を書いたがダメ。 こちらの記事で、上記の1文が、ソースコードの先頭もしくは2行目にないと認識してくれないことがわかった。 ソース…

Macの場合

Mac OS X には、最初からPythonがインストールされているのだが、Aptanaの環境設定で、Pythonインタープリターの設定をする際に、python.exeの場所がわからず悩んだので、メモ。 答え: Machintosh HD/システム/ライブラリ/Framework/Python.framework/Versi…