機械です。
めんどーくさいのはかなり省いてありますが、1.0.1のstropモジュールから、
そこそこのモノをstringに移植してみました。
Pythonのテキストなどでも、今日1.5.2ベースのものが多いので、これを
Python1.0.1でなるべく実行できるようになると、人に教えるのに便利ですので。
手抜きですので、実装してない関数、けっこうあります。
--^ string.py
import strop
# constants
lowercase = strop.lowercase
uppercase = strop.uppercase
whitespace = strop.whitespace
digits = "0123456789"
hexdigits = "0123456789abcdefABCDEF"
octdigits = "01234567"
letters = lowercase + uppercase
# functions
atof=strop.atof
atoi=strop.atoi
atol=strop.atol
joinfields = strop.joinfields
splitfields = strop.splitfields
index = strop.index
rindex = strop.rindex
strip = strop.strip
swapcase = strop.swapcase
upper = strop.upper
lower = strop.lower
def find(*lst):
try:
if len(lst) == 2:
n = strop.index(lst[0],lst[1])
elif len(lst) == 3:
n = strop.index(lst[0],lst[1],lst[2])
else:
n = strop.index(lst[0],lst[1],lst[2],lst[3])
return n
except ValueError:
return -1
def rfind(*lst):
try:
if len(lst) == 2:
n = strop.rindex(lst[0],lst[1])
elif len(lst) == 3:
n = strop.rindex(lst[0],lst[1],lst[2])
else:
n = strop.rindex(lst[0],lst[1],lst[2],lst[3])
return n
except ValueError:
return -1
def replace(s,o,n):#String,Old,New
return strop.joinfields(strop.splitfields(s,o),n)
def join(*lst):
if len(lst)==1:
return strop.joinfields(lst[0]," ")
elif len(lst)==2:
strop.joinfields(lst[0],lst[1])
else:
return 0
def split(*lst):
if len(lst)==1:
return strop.split(lst[0])
elif len(lst)==2:
return strop.splitfields(lst[0],lst[1])
else:
return 0
def capitalize(w):
s0 = w[:1]
s1 = w[1:]
s0 = upper(s0)
s1 = lower(s1)
s = s0 + s1
return s
def capwords(s):
sl0 = strop.split(s)
sl1 = []
for x in sl0:
sl1.append(capitalize(x))
return join(sl1)
def ljust(s, w): # string width
if len(s) >= w:
return s
else :
k = w - len(s)
s = " " * k + s
return s
def rjust(s, w): # string width
if len(s) >= w:
return s
else :
k = w - len(s)
s = s + " " * k
return s
def center(s, w): # string width
if len(s) >= w:
return s
else :
k = w - len(s)
k0 = k / 2
k1 = k - k0
s = " " * k1 + s + " " * k0
return s
def zfill(s, w): # string width
if len(s) >= w:
return s
else :
k = w - len(s)
s = "0" * k + s
return s
--$
おまけ・・・(緊急避難的措置)
--^ os.py
from dos import *
name = "dos"
--$
--^ re.py
from regex import *
--$