一些学习时的小知识


使用进度条from tqdm import tqdm

并且使用的时候在迭代器对象外面加上一层tqdm()

对内存压力更小的文件访问操作:

from smart_open import open

smart_open是一个高效大文件流处理模块。可以兼容python的open函数

按字符个数读入文件内容
f.read(token_num)

更加开发式地打印内容

print(repr(line)) # 这种形式不会对转义字符进行直接转义

使用正则来处理文本

  1. import re
  2. # 导入正则模块
  3. # 替换匹配字符串
  4. original = 'asdhldhlfh'
  5. tran = re.sub(' +',' ',original[, count=0])
  6. # 经典的将多个空格替换成一个 可选参数count是用来限制替换次数,0是替换全部
  7. # flag 参数 re.l 忽略大小写 re.M 多行模式 re.S是.包括换行符(任意字符)
  8. # re.X 忽略空格和# 后面的注释
  9. tran = re.sub('[,.]',original)

^模式符用来匹配字符串开头
$模式符用来匹配字符串某尾
.模式符匹配除了换行以外的所有字符
[符号]表示匹配中括号以内的所有字符
[^符号]不匹配中括号以内的所有字符
*是0到多个用于匹配的模式串
re+是1到多个用于匹配的模式串
re?匹配零到一个用于匹配的模式串
re{n}匹配指定重复模式串的字符
a|b匹配a或者b
(re)对re进行分组收集这些匹配的文本的集合
\W 字母数字下划线
\W匹配非字母数字下划线
\s匹配任意空白字符==[\t\n\r\f]
\S匹配任意非空白字符
\d任意数字
\D任意非数字

上面这些就是常用的文本里面所用的预处理正则简述