petitviolet_blog

@petitviolet blog

python

郵便番号で住所検索するAPI

作ったもの 郵便番号から住所を検索するAPI 使ったものはPythonとFlaskとSQLAlchemy(MySQL) デモ githubにも貼ってあるが、こちらにも リポジトリ petitviolet/ZipToAddress 作った動機 郵便番号から住所検索するサービスを自前で動かすことがあるんじゃない…

Nifty Cloud Mobile BackendをPythonから使う

Nifty Cloud Mobile Backend Niftyが提供するmbaas(Mobile Backend as a Service)へのリクエストを行うPythonモジュールを作成しました pypi/py_nifty_cloud pypiに登録したので、 pip install py_nifty_cloud でinstall出来ます Githubにもpetitviolet/py_n…

ajaxからpythonを使ってsvn updateする方法

apacheの文字コードをいじる 叩かれるPythonは以下のファイルです。 #!/usr/local/bin/python # -*- encoding:utf-8 -*- ''' chdirしてsvn updateしてくる ajaxで叩かれる ''' import os import commands import commit_log_viewer as c # このpythonファイ…

sqlalchemyでcreate tableする

以前の記事でdeclarative_baseを使ってテーブルの定義をしてマッピングするとき、 command.sqlでcreate tableをしたが、pythonからcreate tableも出来たのでメモ。 # 今回必要な分だけimport from sqlalchemy import Column, Integer, create_engine, MetaDa…

FlaskとSQLAlchemyを使っててMySQL server has gone awayってなる

flaskとsqlalchemyでapiを実装し、そのapiに対して一度リクエストしてからmysqlのwaittime_outが過ぎると OperationalError: (OperationalError) (2006, 'MySQL server has gone away') というエラーが出てしまい、うまく通信が出来なかった。 ちなみに、and…

geoalchemyで位置情報をpythonから扱う

sqlalchemyでMySQLを使うで説明したsqlalchemyでは、ここで説明したMySQLの位置情報を利用できない。 そこで、geoalchemyを使う。 インストール sudo pip install geoalchemy以上。 マッピング sqlalchemyではMySQLテーブルとマッピングするためのクラスを定…

sqlalchemyでMySQLを使う

前回はMySQLdbを使ってMySQLを利用しましたが、今回はsqlalchemyを使ってみます。 また、位置情報を利用するため、sqlalchemyだけでなく、geoalchemyを利用します。 geoalchemyについてはまた後日書きます。 準備 インストールはpipとかeasy_installとかで簡…

緯度経度の地図情報をMySQLとPythonのMySQLdbを使って扱う

地図情報(緯度経度)をMySQLで扱う。 MySQLはPythonからMySQLdbを使って扱う。 緯度はlatitude、経度はlongitude テーブル定義 これはpython関係ないsql文です。 create database geosample; use geosample; create table place ( id int auto_increment, n…

MeCabのユーザー辞書編集

MeCabで使う辞書を編集したいけど権限が無くて編集できないときの対処法 mecabrc ~/.mecabrc を作成し,/usr/local/etc/mecabrc の内容をコピーして // ; userdic = /home/foo/bar/user.dic userdic = ~/user_dic/hoge.dicと書き換える.セミコロンも消す. …

日付表現の扱い

Pythonで日付表現を扱いたい時のメモ書き 日付の入った文字列を日付表現にすることが一番面倒臭い import datetime # 今日 datetime.date.today() # >>> datetime.date(y, m, d) # 今日の今 datetime.datetime.today() # >>> datetime.datetime(u, m, d, h, …

Scipyでの疎行列の扱い

行列の計算 import scipy.sparse as sp import numpy as np a = sp.lil_matrix((1, 10000)) # 1*10000の疎行列が作成される b = sp.lil_matrix((1, 10000)) # a.shape => (1, 10000) for i in xrange(a.shape[1]): r = np.random.rand() if r < 0.9: r = 0.0…

sqlite3でのエスケープ処理

データベースとしてsqlite3を使用していて,すごく今さらながら最近知ったことがあったのでメモ. エスケープ処理 pythonで文字列を扱うときに,例えば\(バックスラッシュ)を print '\'なんてすると怒られるのは,pythonにおいて \ がエスケープに用いられて…

正規表現・自然言語処理

研究室の勉強会で正規表現と自然言語処理について話したのでそれのまとめ. 正規表現 クロールしたWebページのテキストから時間に関する部分だけを抽出したい, といった時に機械的にパターンに当てはまる部分を抽出するための表現. メタ文字 .:任意の一文…

クローラに使うurllib, urllib2のメモ

pythonでクローラを作ってて,Googleの検索結果のページを使えるようにするためにちょっと工夫が必要だったのでメモ. urllib, urllib2 pythonでwebページの情報を利用とするとなると, urllib urllib2 のどちらかを使うことになるかと思います. 基本的には…

三項演算子 補足

この記事(2011-11-08 - I/O Error : My Knowledge)で 三項演算子について軽く書いて,自分で使ってみてると上手くいかないことが起きたのでメモ. コード例 from random import randint def r(): i, j = randint(-10, 10), randint(-10, 10) print 'i =', i, '…

ビット反転と三項演算子

FizzBuzz なんとなくFizzBuzzとかやったり解答例FizzBuzz - Pythonのお勉強を眺めてると for i in range(100):print i%3/2*"Fizz"+i%5/4*"Buzz"or-~iというワンライナーを見つけて, ~iって何だよ,ってなって調べてみた. ビット演算子 Pythonにはビット演算子…

Python Imaging Library, FreeType のインストール

PIL 前回のエントリ (Python Image Library(PIL)の使い方 - I/O Error : My Knowledge)では import Imageとしていましたが、きちんとしたPILのインストールを行ったのでメモ。 ダウンロード まずはPILの公式サイト(Python Imaging Library (PIL))から ソース…

Python Image Library(PIL)の使い方

またしてもpython chanllengeです. PILを用いることになったのでお勉強. 今回はコードとして全部書いてしまいました. PILを用意 easy_install PILもしくは pip install PILとかでいけるはずです. easy_installとかpipについてはググッてください. 用意した物…

zipfileの使い方

python challengeでzipfileを使うことがあったので. まずは import zipfileでインポートする. ZipFileオブジェクトの扱い 扱う対象をchannel.zipとする.(python challengeより) s_zip = zipfile.ZipFile("channel.zip", "r")でzipオブジェクトとして扱えるよ…

値を1大きくする速さ

正直どうでもいい上にめっっっちゃ簡単なことを調べてみたので一応. 調べたこと 例えば今 n = 1 として, n に 2 をしたい時に n += 1とするべきか, n = 2とするべきか. 調べ方 変数を1増やしたい時にどっちがいいかを判定するために, pass(何もしない) 1大き…

pickle使ってみた

最近PythonChallengeにほんの少し取り組んでいて,そこで 初めてPickleモジュールを使うことになったのでメモ. pickleとは python特有のデータ形式のことであり, ざっくり言えばバイナリで保存するのではなく, 全部文字列にして扱いましょう,っていう感じだと…

ファイル操作・ディクショナリ操作のメモ

ファイル読み込み コード内で既に存在しているファイル(例えばinput.txt)を開きたい時に, f = open("input.txt").readlines() とやっても, g = [line for line in file("input.txt")]とやっても結果は同じ. というかfileとopenの違いが分かりませんでしたw …

正規表現

とりあえず備忘録でpythonでの正規表現でちょっと困ったところのメモ. まずは、 import re #reモジュールのインポート 正規表現を何回も用いるときは、 regex = re.compile(pattern) #patternは正規表現を用いると早くなる。 コンパイルせずに使うと重くなる…