Pythonのよもやま覚え書き

日付と時刻
[Q] 現在の時刻を知るには
[A]
import time
time.time()
  
[Q] 時刻をフォーマットするには
[A]
import time
tm = time.localtime(time.time())
tmstr = time.strftime("%Y/%m/%d", tm)
  

文字列処理
[Q] 文字列の一部を別の部分文字列に置き換えるには
[A]
import string
newstr = string.replace(oldstr, from, to)
 

正規表現
[Q] 正規表現によるパターンマッチを行うには
[A]
rep = re.compile(regexpstr)

m = rep.search(targetstr)
if m != None:
  spos = m.start(); epos = m.end();
  print "[%d][%d] %s" % (spos, epos, buf),

ファイルシステム
[Q] ディレクトリを再帰的に探索しながらファイルに対して処理をするには
[A]
def __visitproc(arg, dirname, names):
  pass

os.path.walk(initialdir, __visitproc, arg)
[Q] ファイル名に対するパターンマッチ(グロブ)を行うには
[A]
bool = fnmatch.fnmatch(filename, "alert*.log"):
[Q] ファイル名からディレクトリ名や主ファイル名だけを取り出すには
[A]
dirname  = os.path.dirname(fullpath)
basename = os.path.basename(fullpath)
[Q] ディレクトリ名とファイル名を連結したパスを得るには
[A]
print "%s" % os.path.join(dirname, e)
[Q] パスを正準化するには
[A]

canonpath = os.path.normpath(path)

Windowsではパス区切りのスラッシュもバックスラッシュに変換されます。
[Q] ファイルに関する情報(stat)を取得するには
[A]
import os
from stat import *

stst = os.stat(fullpath)
mode = stst[ST_MODE]
nlink = stst[ST_NLINK]
gid = stst[ST_GID]
uid = stst[ST_UID]
sz = stst[ST_SIZE]
mtime = stst[ST_MTIME]

その他
[Q] プラットフォームやPythonのバージョンを得るには
[A]
print "OS TYPE:", os.name
print "PLATFORM:", sys.platform
print "Python Version:", sys.version
[Q] 環境変数を得るには
[A]
path = os.environ['PATH']
[Q] パスをOS依存の区切り文字でリストに分割するには
[A]
# os.pathsepはOS依存のパスの区切り子。UNIXでは':'、Windowsでは';'
paths = string.split(path, os.pathsep)
[Q] GIDやUIDからユーザグループやユーザ名を取得するには
[A]
import grp, pwd
groupname, passwd, gid2, members = grp.getgrgid(gid)
username, passwd, uid2, gid2 = (pwd.getpwuid(uid))[0:4]
[Q] 乱数を取得するには
[A]
import whrandom
whrandom.seed()
val = whrandom.randint(0, 100)
  

(first uploaded 2001/09/16 last updated 2003/03/16, MISUMI URANO)
セクションのインデックスに戻る