作者: 機械伯爵
日時: 2002/10/27(21:19)
 機械です。

 めんどーくさいのはかなり省いてありますが、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 *
--$