【习题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)
posted @ 2025-07-03 21:30  李大嘟嘟  阅读(33)  评论(0)    收藏  举报