【习题1】利用Python分离文件中的英文和中文

参考:
https://blog.csdn.net/id_hao/article/details/126078989
https://blog.csdn.net/weixin_43969246/article/details/106548283

#data.txt
#存放位置:NLP basic\\data\\test.txt
#内容:
asdsc 中国
efcdsfgs 为中华之崛起而读书
ihuihgiu 笨霄公主
hiooijoo 我是一只小小鸟
我有故人抱剑去
jjaoojn 人面桃花相映红
# 处理data.txt文件
# list1 记录中文;
# list2 记录英文;
# data1:对每个中文字符进行编码
# data2:统计每一个英文字符出现的次数

# 初始化列表和字典
list1 = []  # 存储中文字符
list2 = []  # 存储英文字符
dict1 = {}  # 存储中文字符编码
dict2 = {}  # 统计每一个英文字符出现的次数

# 打开并读取文件内容
with open("NLP basic\\data\\test.txt", encoding="utf-8") as f:#打开文件,encoding指定编码格式
    a = f.read()  # 读取文件内容存放到变量a中


# 定义判断是否为中文的函数
def is_chinese(string1):
    for _char in string1:
        if "\u4e00" <= _char <= "\u9fa5":
            return True
        else:
            return False


# 定义判断是否为字母的函数
def is_alphabet(string2):
    for _char in string2:
        if (
            _char >= "\u0041" and _char <= "\u005a"
        ) or (
            _char >= "\u0061" and _char <= "\u007a"
        ):
            return True
        else:
            return False



# 遍历每个字符
for i in a:
    if is_chinese(i):  # 判断是否为中文
        list1.append(i)  # 存储中文字符
        if i in dict1:  # 如果中文字符已经编码过,则不再编码
            continue
        else:
            dict1[i] = len(dict1) + 1  #len(dict1)为当前编码的个数
    elif is_alphabet(i):  # 判断是否为字母
        list2.append(i)  # 存储英文字符
        if i in dict2:  # 统计每一个英文字符出现的次数
            dict2[i] += 1#如果已经统计过,则加1
        else:
            dict2[i] = 1#如果没有统计过,则初始化为1
    else:
        continue  # 跳过其他字符

# 输出结果
print("中文字符:", list1)
print("英文字符:", list2)
print("中文字符编码:", dict1)
print("英文字符出现次数:", dict2)

输出结果

image

posted @ 2025-07-01 17:10  李大嘟嘟  阅读(12)  评论(0)    收藏  举报