python2.4以上を想定しています。
import re p = re.compile("ab.", re.I) result = p.findall("AbdABCAAbb") print result
import re p = re.compile("ab.", re.I) result = p.match("Abd") print result.group()
import re p = re.compile("ab.", re.I) result = p.search("xxxAbd") print result.group()
import re p = re.compile("ab.") print p.sub("xxx", "abcdeaabcde")
import re p = re.compile("ab.") print "結果:%s \n%s回置換え" % p.subn("xxx", "abcdeaabcde")
m = re.match("a.", abacaad", re.I) l = re.findall("a.", "abacaad", re.I) s = re.sub("a.", "A", "ababac") など
mlist = re.findall("(ab..)ef(..)", "abcdefghabddefgg") for (a,b) in mlist: print (a, b)
import re for w in re.findall(u"あ.", u"あいうあえあ"): print w
import urllib d = urllib.urlopen("http://www.yahoo.co,jp") print d.read().decode("euc-jp") d.close()まあ簡単にはこんな感じ。
import urllib2, cookielib cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) r = opener.open("http://www.google.com/")これでcjが生きてる間はrを閉じたり別のインスタンスからurlを開いたりしても同じドメインに接続するならクッキーのやり取りを自動でやってくれる。クッキーのファイルを読み書きするやつもあるらしい。
urllib.FancyURLopener.version = "MyAPP 1.1"みたいにやってもできるみたいだが、このやりかたはなぜか知らんがあまり使われていないようだ。多くの場合マニュアルに書いてあるとおり次のようにしているようだ。
class AppURLopener(urllib.FancyURLopener): def __init__(self, *args): self.version = "App/1.7" urllib.FancyURLopener.__init__(self, *args) urllib._urlopener = AppURLopener()なんか無意味に回りくどい気がする・・・。
opener = urllib2.build_opener() opener.addheaders = [('User-agent', 'My App 2.4')] d = opener.open("http://hogehoge")みたいにする。
import urllib params = urllib.urlencode({'user': myid, 'pass': mypass}) d = urllib.urlopen("http://hogehoge/login", params)GET送信の場合は、第二引数を渡さないように
urllib.urlopen("http://hogehooge/login?%s" % params)みたいにする。 urllib2のopenerの場合もurlopenと引数の扱いは同じ。
文字列のエンコーディングを変換するには次のようにすればよい。(2.4)
str.encode("cp932") str.decode("euc-jp")
UTF-8の内部コードを直接ソースファイルに書くには
u"あいうえお"
みたいに文字列の頭にuをつける。
r"あいうえお"
みたいにrをつけるとraw文字列(?)というのになるらしい。文字列のバイトをそのままという意味か?
help('modules') #利用可能なモジュールの一覧
引数はsys.argvにリスト形式で入っている。またオプション引数の解析はgetoptが使える。
getopt(args, shortopts, longopts=[])
getoptを使った引数の解析。
import sys, getopt try: optlist, args = getopt.getopt(sys.argv[1:], "hs:", longopts=["help", "size="]) except getopt.GetoptError: #エラー処理 sys.exit(0) for opt, args in optlist: if opt in ("-h", "--help"): hogehoge if opt in ("-s", "--size"): fugofugo
f = open('file_name', mode)
モード
ファイルオブジェクトから一行ごとに取り出すには
for line in fileobj:
os.tmpfile() 一時ファイルのファイルオブジェクトを返す os.chdir(path) chdir os.getcwd() pwd os.chmod(path,mode) chmod os.listdir(path) pathに含まれるファイルとディレクトリのリスト os.mkdir(path[,mode]) ディレクトリ作成 os.mkdirs(path[,mode]) 再帰的なディレクトリ作成 os.remove(path) ファイル削除 os.removeddirs(path) 再帰的なディレクトリ削除 os.rename(src, dst) 改名 os.renames(old, new) 再帰的にパスを削除&作成する os.rmdir(path) ディレクトリ削除 glob.glob("*.exe") ワイルドカードによるファイルのリスト os.path.abspath(path) os.path.basename(path) os.path.dirname(path) os.path.exists(path) os.path.expanduser(path) ~をユーザーのホームの置き換える os.path.expandvars(path) 環境変数を展開する$name, ${name} os.path.getatime(path) os.path.getttime(path) os.path.getctime(path) os.path.getsize(path) os.path.isabs(path) os.path.isfile(path) os.path.isdir(path) os.path.islink(path) os.path.ismount(path) os.path.join(path[,path...]) パスの結合 os.path.normcase(path) os.path.normpath(path) os.path.realpath(path) os.path.samefile(path1, path2) os.path.sameopenfile(fp1, fp2) os.path.split(path) headとtailに分解 os.path.splitdrive(path) drive, tailに分解 os.path.splittext(path) root, extのペア
import os def printFiles(arg, dir, files): for f in files: print os.path.join(dir, f) os.path.walk("C:\python24", printFiles, None)
import os for root, dirs, files in os.walk("C:\python24"): for fname in files: print os.path.join(root, fname)