【习题1】利用Python分离文件中的英文和中文(2)
这是对【习题1】的扩展
其中list中多个字符串合并为一个思路参考了这个帖子:https://blog.csdn.net/Geeksongs/article/details/106067766
# 创建read_data函数,参数为file_path。该函数用于读取数据文件,并返回一个包含数据的列表
# 打开文件file,只读模式,编码格式为utf-8,起别名为f
# 列表all_data用于存储读取的数据,读取文件中的每一行数据,并将其添加到列表all_data中
# 定义空列表list_c存储中文数据,定义空列表list_e存储英文数据
# 遍历all_data中的每一行数据,按空格分割,判断每行是分割为两部分,若为两部分,则将第一个元素添加到list_c中,将第二个元素添加到list_e中
# 返回list_c和list_e
def read_data(file_path):
with open(file_path, "r", encoding="utf_8") as f:
all_data = f.readlines()
list_c = []
list_e = []
for i in all_data:
data_s = i.split()
if len(data_s) != 2:
continue
else:
list_e.append(data_s[0])
list_c.append(data_s[1])
return list_c, list_e
chinese_list, english_list = read_data("NLP basic\\data\\test.txt")
print(chinese_list)
print(english_list)
# 中文字符按出现顺序,从0起编码
chinese_code = {}
chinese_list2 = "".join(chinese_list)
for j in chinese_list2:
if j in chinese_code:
continue
else:
chinese_code[j] = len(chinese_code) + 1
print(chinese_code)
# 计算英文字符出现次数
english_code = {}
english_list2 = "".join(english_list)
for k in english_list2:
if k in english_code:
english_code[k] += 1
else:
english_code[k] = 1
print(english_code)

浙公网安备 33010602011771号