从字符串中去掉不需要的字符
使用strip()
来去除字符串两边的字符
使用lstrip()
来去除左边字符
使用rstrip()
来去除右边的字符
s = ' hello,world,'
#去除空格
print(s.strip())
#去除右边的符号
print(s.rstrip(",").strip())
# hello,world,
# hello,world
文本过滤和清理
可以建立一个小型转换表,然后使用translate()
方法
remap ={
ord('\t'):' ',
ord('\f'):' ',
ord('\r'):' '
}
s = 'python\tis\tawesome\r\n'
s.translate(remap)
print(s)
# python is awesome
对齐文本字符串
对于基本的字符串对齐要求,可以使用字符串的ijust()
、rjust()
、center()
text = 'Hello World'
print(text.ljust(20))
print(text.rjust(20))
print(text.center(20))
print()
#可以使用符号进行填充
print(text.ljust(20,'='))
print(text.rjust(20,'='))
print(text.center(20,'='))
# Hello World
# Hello World
# Hello World
# Hello World=========
# =========Hello World
# ====Hello World=====
如果需要使用更多的字符串输出格式,可以使用format()
函数
字符串连接及合并
如果想要将合并的字符串在一个序列或可迭代对象中,那么将它们合并起来的最快方法就是使用join()
方法
parts =['Is','Chicago','Not','Chicago?']
print("".join(parts))
#使用生成器进行链接
print("".join(start for start in parts))
# IsChicagoNotChicago?
# IsChicagoNotChicago?
由于使用+
号运算符每次都会产生一个临时的结果,因此效率较低。
给字符串中的变量名做插值处理
可以使用format()
函数
s = '{name} has {n} message'
print(s.format(name="siqu",n=12))
#siqu has 12 message
可以使用format_map()
与vars()
vars()
可以返回对象属性与属性值的映射值,如果括号当中没有对象,则指定当前调用位置的属性和属性值format_map
函数可以将映射替换变量名
s = '{name} has {n} message'
name ="siqu"
n = 2
print(s.format_map(vars()))
# siqu has 2 message
#作用于实例类上
class Info:
def __init__(self,name,n):
self.name=name
self.n = n
a = Info("siqu",45)
s = '{name} has {n} message'
print(s.format_map(vars(a)))
# siqu has 45 message
format
和formatmap
的一个缺点就是没法优雅地处理缺少某个值的情况,可以单独的定义一个带有_missing\()
方法的字典类
class safesub(dict):
def __missing__(self,key):
return '{'+ key +'}'
s = '{name} has {n} message'
name = "siqu"
n = 80
print(s.format_map(safesub(vars())))
# siqu has 80 message
以固定的列数重新格式化文本
import textwrap
s = 'Look into my eyes, look into my eyes,the eyes, the eyes,'
#第二个参数为每行的宽度
print(textwrap.fill(s, 10))
# Look into
# my eyes,
# look into
# my
# eyes,the
# eyes, the
# eyes,
在字节串上执行文本操作
字节串支持大多数和文本字符串一样的内建操作
data = b'Hello World'
print(data[:5])
print(data.startswith(b'Hello'))
print(data.split())
print(data.replace(b'Hello',b'Hello world'))
# b'Hello'
# True
# [b'Hello', b'World']
# b'Hello world World'
但是会有一些区别
a ='Hello World'
print(a[0])
b = b'Aello World'
print(b[0])
# H
# 65
对于字节串的打印结果,可以将其解码为字节串
b = b'Hello'
print(b.decode('ascii'))
# Hello
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容