【习题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)
输出结果


浙公网安备 33010602011771号