def myreadlines(f, newline):
"""
利用生成器读取数据,并将数据按照指定的分隔符返回
:param f: 文件打开对象
:param newline: 指定的行分隔符
:return:
"""
# 定义一个中间变量来存储每次读取的数据
buff = ''
while True:
while newline in buff:
# 获取分隔符在读取的数据中的位置
pos = buff.index(newline)
# 将分隔符之前的数据返回
yield buff[:pos]
# 将数据变为分隔符以后的数据
buff = buff[pos+len(newline):]
# read()方法可以传入一个数字表示读取的字节数,不传入数字就读取全部的数据
current_text = f.read(4092)
if not current_text:
# 如果没有读取到数据表示已经读到文件结尾,将当前数据返回
yield buff
break
# 将读取到的数据记录到中间变量中
buff += current_text
with open('专项词.txt', encoding='utf-8') as f:
for i in myreadlines(f, ','):
print(i)
网友评论