返回顶部
首页 > 资讯 > 后端开发 > Python >用Python转换一些常见全角字符为半
  • 839
分享到

用Python转换一些常见全角字符为半

全角字符常见 2023-01-31 08:01:12 839人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

前言 最近在爬日文小说的过程中,经常遇到全角(甚至和和半角混用),造成我(强迫症)强烈不适,就着手专门写一个脚本处理之 思路 首先在网上寻找看是否已经有现成库/脚本能做到,寻找一番之后只找到一些思路文章,这里就不重复了有一点要注意,不少文

前言

最近在爬日文小说的过程中,经常遇到全角(甚至和和半角混用),造成我(强迫症)强烈不适,就着手专门写一个脚本处理之

思路

首先在网上寻找看是否已经有现成库/脚本能做到,寻找一番之后只找到一些思路文章,这里就不重复了
有一点要注意,不少文章里是python2的情况,里面用的是unichr函数,到python3就变成了chr函数
直接看代码吧

def SBC2DBC(char):
    chr_code = ord(char)
    # 处理全角中数字大等于10的情况
    if chr_code in range(9312, 9332):
        return str(chr_code - 9311)
    elif chr_code in range(9332, 9352):
        return str(chr_code - 9331)
    elif chr_code in range(9352, 9372):
        return str(chr_code - 9351)
    elif chr_code in range(8544, 8556):
        return str(chr_code - 8543)

    else:
        if chr_code == 12288: # 全角空格,同0x3000
            chr_code = 32
        if chr_code == 8216 or chr_code == 8217:  # ‘’
            chr_code = 39 # '
        elif chr_code in range(65281, 65374):
            chr_code = chr_code - 65248
        return chr(chr_code)


def SBC2DBC_string(string):
    new_string = ''
    for char in string:
        new_string += SBC2DBC(char)
    return new_string

网上大部分文章里只有全角空格和range(65281,65374)的情况,我时不时能遇到一些比较奇怪的全角数字,比如⑩ ⑽ ⒑ Ⅻ,这里也一并处理了

扩展思考

1 . 某些情况下全角反而是更好的选择,比如文件名,其不能用*:/等符号,全角就更适合,当然这属于另一个话题,就不在此展开
2 . 罗马数字的情况,在现有的全角字符中罗马数字仅到12,如果某位(丧心病狂的)作者用了多个罗马数字的话,比如ⅩⅤ,上面的脚本就不合适了(就转成105),这时候需要先对整个字符串进行处理,找到连接在一起的罗马数字,然后计算并替换,这更像是数据清洗的范畴,也不展开多说了

--结束END--

本文标题: 用Python转换一些常见全角字符为半

本文链接: https://lsjlt.com/news/193171.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 用Python转换一些常见全角字符为半
    前言 最近在爬日文小说的过程中,经常遇到全角(甚至和和半角混用),造成我(强迫症)强烈不适,就着手专门写一个脚本处理之 思路 首先在网上寻找看是否已经有现成库/脚本能做到,寻找一番之后只找到一些思路文章,这里就不重复了有一点要注意,不少文...
    99+
    2023-01-31
    全角 字符 常见
  • Oracle中怎么将全角数字转换为半角数字
    Oracle中怎么将全角数字转换为半角数字,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。数据库表 test 字段 id name age 全角...
    99+
    2024-04-02
  • Python实现全角半角字符互转的方法
    前言 相信对于每一个编程人员来说,在文本处理的时候,经常会遇到全角半角不一致的问题。于是需要程序能够快速的在两者之间互转。由于全角半角本身存在着映射关系,所以处理起来并不复杂。 具体规则为: ...
    99+
    2022-06-04
    全角 半角 字符
  • 在java中怎么对字符进行全角与半角的转换
    在java中怎么对字符进行全角与半角的转换?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。全角SBC caseSexagesimal to Binary Converter6...
    99+
    2023-05-31
    java ava
  • python的字符转换常见bug
    1.python把一个unicode字符串写入文件为什么会报错?write方法的参数类型是str,str是二进制流(不包含编码信息),当你给出一个unicode对象时,会执行str函数转换成str类型再送给write方法。unicode转s...
    99+
    2023-01-31
    字符 常见 python
  • python字符串的一些常见实用操作
    目录切片——str[start:end]字符串长度——len(str)重复字符串 ——1、str * n,2、...
    99+
    2024-04-02
  • 聊聊javascript中常见的一些转义字符
    JavaScript是一种基于文本的编程语言,因此它需要一种机制来处理特殊字符。这些特殊字符可以是控制字符,例如换行符和制表符,或者是一些需要转义的字符,例如引号和反斜杠。在JavaScript中,使用反斜杠(\)来指示特殊字符。这被称为转...
    99+
    2023-05-14
  • 使用python怎么将一张图片转换为字符画
    这期内容当中小编将会给大家带来有关使用python怎么将一张图片转换为字符画,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。源码(注释很详细):# -*- coding=utf-8&nb...
    99+
    2023-06-06
  • 常用PHP字符串转换函数有哪些
    这篇文章主要介绍“常用PHP字符串转换函数有哪些”,在日常操作中,相信很多人在常用PHP字符串转换函数有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”常用PHP字符串转换函数有哪些”的疑惑有所帮助!接下来...
    99+
    2023-07-05
  • Python二进制串转换为通用字符串
    一个小问题        今天在做一个实验时,需要对一个包含中英文词汇的TXT文件进行读入和整理。        Python代码的编码规则为UTF-8。在读入时,文件的每行是二进制串,形如: b'heroes\xff..... ...
    99+
    2023-01-31
    转换为 字符串 Python
  • python使用lower函数将字符串中的大小字符转换为小写
    在python中使用lower()函数将字符串中大小字符转换为小写的方法lower:lower()函数的作用是转换字符串中所有大写字符为小写。lower()函数语法:str.lower()lower()函数使用方法:str = "HELLO...
    99+
    2024-04-02
  • 如何使用python将天数转换为日期字符串
    小编给大家分享一下如何使用python将天数转换为日期字符串,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python天数转日期字符串在利用python读取Exc...
    99+
    2023-06-26
  • SQL 怎么将日期格式转换为常用字符串格式
    SQL 怎么将日期格式转换为常用字符串格式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SQL 将日期格式转换为常用字符串格...
    99+
    2024-04-02
  • 如何使用Python的upper()函数将字符串转换为大写
    如何使用Python的upper()函数将字符串转换为大写,需要具体代码示例Python是一种简单易学的编程语言,它提供了许多内置函数来处理字符串。其中一种常用的函数是upper()函数,它可以将字符串中的所有字母转换为大写形式。本文将详细...
    99+
    2023-11-18
    Python 字符串转换 upper()
  • python如何将一个整数或数值型字符串转换为浮点数
    这篇文章将为大家详细讲解有关python如何将一个整数或数值型字符串转换为浮点数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。转为浮点类型将一个整数或数值型字符串转换为浮...
    99+
    2024-04-02
  • 怎么在python中使用str()将参数转换为字符串类型
    本篇文章给大家分享的是有关怎么在python中使用str()将参数转换为字符串类型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。str()将参数转换为字符串类型a =...
    99+
    2023-06-15
  • 【华为OD机考 统一考试机试C卷】 全量和已占用字符集 、字符串统计(C++ Java JavaScript Python)
    华为OD机考:统一考试 C卷 + D卷 + B卷 + A卷 2023年11月份,华为官方已经将 华为OD机考:OD统一考试(A卷 / B卷)切换到 OD统一考试(C卷)和 OD统一考试(D卷) 。根据考友反馈:目前抽到的试卷为B卷或C卷/D...
    99+
    2023-12-23
    华为od c++ java javascript python
  • MYSQL: sql中某一个字段内容为用逗号分割的字符串转换成多条数据(适用于部分树机构)
    创建表的示例 CREATE TABLE tbl_name( id int(11) not null auto_increment, userName varchar(100) not nu...
    99+
    2023-08-17
    mysql sql 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作