Python 内置模块 文本*

一.string模块
1.简介:

该模块主要用于处理字符串

2.常数:

>>> string.ascii_lowercase#小写英文字母
'abcdefghijklmnopqrstuvwxyz'
>>> string.ascii_uppercase#大写英文字母
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.ascii_letters#英文字母
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.digits#10进制数字
'0123456789'
>>> string.hexdigits#16进制数字
'0123456789abcdefABCDEF'
>>> string.octdigits#8进制数字
'01234567'
>>> string.punctuation#标点符号
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>> string.printable#可输出字符
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
>>> string.whitespace#空白字符
' \t\n\r\x0b\x0c'

3.方法:

转换为标题格式:[<ns>=]string.capwords("<s>"[,sep=None])
  #即将每个单词的首字母转换为大写;与"<s>".title()的区别在于如果某个单词不以字母开头,就不转换
  #参数说明:
    s:指定要转换的str;str
    sep:指定如何分割单词;默认为所有空白字符
    ns:返回修改后的str;str

#实例:
>>> string.capwords("aaa e4sdfA")
'Aaa E4sdfa'
>>> string.capwords("aaa 4sdfA")
'Aaa 4sdfa'
>>> "aaa 4sdfA".title()
'Aaa 4Sdfa'
>>> string.capwords("aaa e4sdfA",sep="e")
'Aaa e4sdfa'
>>> string.capwords("aaa e4sdfA",sep="4")
'Aaa e4Sdfa'

3.类
(1)字符串模板:

#该类用于定制str的替换标准:
创建模板:<t>=string.Template(template=None)
进行完全替换:<t>.substitute([param1="<vali>"...param2="<valn>"])
  #必须全部被替换,不能跳过某些部分
进行部分替换:<t>.safe_substitute([parami="<vali>"...paramj="<valn>"])
  #可不全部替换,跳过某些部分(这时param前的$也会被保留)
  #参数说明:
    template:指定模板格式;str
      格式为:"...$<param1> ...$<paramn> ..."
	param:指定可替换的部分;str
	  #在template中,这些部分前面应加$,后面接空白或标点;或者用花括号包起来,前面外面再加$(即${param})
	t:返回的模板对象;为string.Template object
	val:指定替换为的值:str
	  #会连param前的$一起替换掉;也可通过dict传入

#实例:
>>> t=string.Template("Hello,I am $name. And who are you? $y1,$y2 or $y3?")
>>> t.substitute(name="Sam",y1="Jack",y2="Alice",y3="Tom")
'Hello,I am Sam. And who are you? Jack,Alice or Tom?'
>>> t.safe_substitute(name="Jack")
'Hello,I am Jack. And who are you? $y1,$y2 or $y3?'
>>> t=string.Template("$asads")
>>> t.substitute(a="JJJ")#注意:param应接空白或标点,以表示该部分已结束
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Euler\AppData\Local\Programs\Python\Python38\lib\string.py", line 126, in substitute
    return self.pattern.sub(convert, self.template)
  File "C:\Users\Euler\AppData\Local\Programs\Python\Python38\lib\string.py", line 119, in convert
    return str(mapping[named])
KeyError: 'asads'
>>> t=string.Template("$a sads")
>>> t.substitute(a="JJJ")
'JJJ sads'
>>> t=string.Template("aaa${who}df")#或者使用花括号包起来
>>> t.substitute(who="JJJ")
'aaaJJJdf'

######################################################################################################################

还可通过继承string.Template类并修改delimiter(定界符)和idpattern(替换格式)来定制不同形式的模板

(2)字符串格式化:

参见:https://blog.csdn.net/wo94chunjie/article/details/102935493
https://www.kancloud.cn/misstime/python3_notes/656826

二.difflib模块
1.简介:

该模块主要用于比较文本并得到不同文本间的差异

三.textwrap模块
1.简介:

该模块主要用于实现文本填充

四.unicodedata模块
1.简介:

此模块提供了对Unicode Character Database(UCD)的访问.UCD中定义了所有unicode字符的字符属性

五.stringprep模块

六.realine模块

七.rlcompleter模块

八.codecs模块
1.简介:

codecs模块专门用于编码转换

九.pyperclip模块:有关剪贴板
1.copy():向计算机的剪贴板发送文本
2.paste():从计算机剪贴板接收文本

import pyperclip

pyperclip.copy("Hello world") #此时打开剪贴板,可粘贴"Hello world"到剪贴板

如果在剪贴板中复制了某一段字符,比如"nihao",此时运行pyperclip.paste()就会返回"nihao"

3.项目举例

#口令保管箱:
import sys, pyperclip

PASSWORDS = {"email": "euyr8wuey89r3geidw","blog": "wqeiy2398eghduk","computer": "ewkwo][ke;w"}

if len(sys.argv < 2):
  print("Please input the account name")
  sys.exit()
  account = sys.argv[1]
  if account in PASSWORDS:
    pyperclip.copy(PASSWORDS[account])
    print("The password for " + account + " copied to clipboard!")
  else:
    print("There is no account named " + account )
#在标记中添加无序列表:
#从剪贴板复制一段文本,在文本每一行开头加上“*”,再粘贴回剪贴板

import pyperclip
text = pyperclip.paste()
lines = text.split("\n")
for i in range(len(lines)):
    lines[i] = "*" + lines[i]
text = "\n".join(lines)
pyperclip.copy(text)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值