python之中文符号转英文符号
方法一:
maketrans方法, 它使用的是一种映射关系来将(中文字符)转换为(英文字符),前提需要维护映射关系数据,也就是你维护了(中文符号),你也得维护其对应的(英文符号),且两边的数量得保持一致, 否则会报错
优点:可以一次性转换多个符号或字符,拓展性强 。缺点是代码长了点
(中文符号)转(英文符号)
# 定义中文符号 chinese_character = r',。!?;:()《》【】“”\‘\’、中文' # 定义对应的英文符号 english_character = r',.!?;:()<>[]""\'\' 英文' # 创建转换表 table = str.maketrans(chinese_character, english_character) # 要转换的中文句子 str = '(中文符号)转(英文符号)中文' # 进行转换 English_Symbols = str.translate(table) # 输出结果 print(English_Symbols)
执行结果>>>
(英文符号)转(英文符号)英文
(英文符号)转(中文符号):直接将 str.maketrans 里面的参数对调一下即可
# 创建转换表 table = str.maketrans(english_character,chinese_character)
方法二:
replace方法:
如果你只想转换一个字符, 这个方法会比较简单,这个方法的作用是字符串替换功能, 将关键字替换成你想要的字符
优点:代码简洁,一目了然。缺点是功能小了点
# 比较简单,注释我就不写了 a = '123,456' print(a.replace(',', ':'))
执行结果>>>
123:456
或者你可以使用我编写的 replace 升级版,可以拿来直接使用,它的强大之处是可以同时处理多个(字符串主体),并且一个(字符串主体)可以同时处理多个关键字替换,拿来可以直接使用。
格式为:key_replace(原始字符,{'关键字':'新数据'})
批量格式为:key_replace(原始字符1,原始字符2,{'关键字1':'新数据1','关键字2':'新数据2'},{'关键字':'新数据'})
import ast # 关键字替换字符串: def key_replace(*args): """ 传入格式说明:key_replace(原始字符串,{'关键字':'新数据'}) 可变传参说明:key_replace(原始字符串1,原始字符串2,{'关键字1':'新数据1','关键字2':'新数据2'},{'关键字':'新数据'}) PS: 一个(原始字符串)对应一个字典,一个字典可以传入多个关键字替换 :return: """ str_main = [] # 用于存储传入的字符串主体 rep_info = [] # 用于存储传入替换关键字信息 for key_info in args: # 遍历传入的参数 if isinstance(key_info, dict): # 如果是字典格式,则代表是(替换关键字信息) rep_info.append(key_info) else: # 如果是字符串或其它,则将其添加到字符串列表中 str_main.append(key_info) case_list = [] # 用于存储替换后的结果 # 遍历传入的字符串和字典,分别进行替换操作 for case_data, key_dict in zip(str_main, rep_info): for key_, value in key_dict.items(): # 遍历字典中的所有键值对 case_data = str(case_data).replace(key_, str(value)) # 替换指定的关键词 try: ast.literal_eval(case_data) # 尝试将替换后的字符串解析为对应数据类型 except SyntaxError: # 如果解析失败,则将字符串加入到case_list中 case_list.append(case_data) else: # 如果解析成功,则将解析后的结果加入到case_list中 case_list.append(ast.literal_eval(case_data)) if len(case_list) == 1: # 如果case_list中元素个数为1,则返回该元素(而不是一个列表) return case_list[0] return case_list # 否则,整体返回case_list
希望能帮到你,类似这些小功能我的建议是自己写一个出来。