Pythonの基本処理

Pythonでちょこっとプログラムを書きたいときのために基本処理をメモします。

前提

Python2.x系を前提としています。

本内容は私個人のためのメモであり、適宜変更します。

ファイル入出力処理

読み出し

テキストファイルを一行ずつ読んで配列に格納
        filename = "file.txt"

        list = []
        for line in open(filename, 'r'):
            line = unicode(line, 'utf_8')       # 日本語を含むファイルを読む場合
            list.append(line.replace('\n','')) # 必要に応じて'¥n'を置換する
csvファイルの2列目の要素を一行ずつ読み込む
        import csv

        filename = "file.csv"

        list = []

        f = open(filename, 'r')

        reader = csv.reader(f)
        for row in readr:
            list.append(row[1])

書き込み

文字列をファイルに追記
        filename = "filename.txt"

        f = open( filename, "a" )
        try:
            data = data.encode('utf_8')
            f.write( data )
        finally:
            f.close()

通信

webページを取得
        import urllib
        import urllib2

        requestUrl = "http://www.hatena.ne.jp"

        req = urllib2.Request(requestUrl)
        response = urllib2.urlopen(req)
        pageData = response.read()

        pageData = unicode(pageData, 'utf_8')
        return pageData

文字列操作

正規表現

マッチする文字列の配列を作成
        import re

        pattern = re.compile(u"\d+")
        matches = pattern.findall(data)

DB操作

peeweeを使用してMySQLを操作

peewee読み込み
form  peewee import *
テーブルの定義
class BaseModel(Model):
    class Meta:

       database = MySQLDatabase( ¥

           **{'user': 'username' ¥
              'passwd': 'password', ¥
              'host': 'localhost', ¥
              'database': 'dbname', ¥
              'port': 'port'})

class Table1(BaseModel):
    charField = CharField()
    doubleField = DoubleField()
    datetimeField = DateTimeField()
class Table2(BaseModel):
    foreignKeyField = ForeignKeyField(Table1, related_name='table1_id')
テーブルの作成
Table1.create_table(True)
テーブルにデータを追加
Table1.create(charField= "name", doubleField = float(value), datetimeField = datetime.now())
テーブルからデータを取得
Table1.select() ¥

          .where((Table1.charField == "name") & (Table1.doubleField == 1.0))

          .order_by(Table1.datetimeField)