# 将字符串s分割成列表
s = 'abc,eee,weq,e eiu ew weoi|qwei\qe'
方案一:用string的split()方法
append和extend都仅只可以接收一个参数,append 任意,甚至是tuple,extend 只能是一个列表
map()它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
def split_str(split_desc, str):
str_list = [str]
for d in split_desc:
t=[]
map(lambda x: t.extend(x.split(d)), str_list) # 将x.split(d)生成的[]中每个元素添加到和t[]中
str_list=t
return [x for x in str_list if x]
print split_str([',', ' ', '|', '\\', '\\t'],s)
方法二 :调用正则表达式的re.split方法
import re
print re.split(r'[, |\\t]+',s)
import os, stat
dir_list = os.listdir('.') # 获取当前目录下的所有文件及文件夹名
print dir_list
print [x for x in dir_list if x.endswith(('py', 'txt'))] # endswith()判断字符串是否以元组内任一一个结尾
print oct(os.stat('django.txt').st_mode) # oct()将数字转化为8进制,stat()为状态查询
os.chmod('django.txt', os.stat('django.txt').st_mode | stat.S_IXUSR)
三、调整字符串的文本格式
import re
# 利用正则表达式的捕获组,捕获每部分的内容,在替换字符串中调整各个捕获组的顺序
str = '2017-10-05 this is test'
# 方法一
print re.sub('(\d{4})-(\d{2})-(\d{2})', r'\2/\3/\1', str)
# 方法二
print re.sub('(?P\d{4})-(?P\d{2})-(?P\d{2})' , r'\g/\g/\g' , str)
pl=['litaifa','ljh','jsy','family']
print ';'.join(pl) # 以;为分隔,将列表pl合并成一个长字符串
print ''.join(pl) # 无分隔,将列表pl合并成一个长字符串
pl=['litaifa','ljh','jsy','family',45] # 列表中有非字符串
print ';'.join([str(x) for x in pl]) # 列表解析,开销比较大
print ';'.join(str(x) for x in pl) # 参数用生成器对象,开销比较小,推荐方法
str = 'abc'
print str.ljust(20) # 左对齐
print str.center(20, '-') # 右对齐,不足部分用'-'填充
print str.rjust(20) # 居中对齐
print format(str, '<20') # 左对齐
print format(str, '>20') # 右对齐
print format(str, '^20') # 居中对齐
# 实例,将冒号对齐
d = {
'litaifa': 45,
'jinshuyan': 40,
'ljh': 10
}
w = max(map(len, d.keys())) # 用map对d.keys()列表中的每个元素求长,将长度作为新列表的值返回,max()求列表的最大值
for k in d:
print k.ljust(w), ":", d[k]
import re, string
str = '++a,b.c|tddef--'
print str.strip('+-') # 参数为所有需要删除的字符组成的字符串
print str[:3] + str[4:] # 删除','
print str.replace('+', '') # 一次只能删除一种串
print re.sub(r'[+\-,.|]|(def)', r'', str) # 一次可以删除多种串
m = string.maketrans('def', 'xyz') # 生成一个转换表,将d转换为x,e转换为y,f转换为z
print str.translate(m) # 将字符串接照m转换表进行转换
print str.translate(None, '+-,.|') # 不进行转换,而是按照第二个参数,将字符串中包含的每一个字符删除