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)