• 关于替换“c2a0”十六进制字符的方法


    一、背景:在爬取网络小说生成的文件中,发现有些空格没法替换,使用十六进制编辑器查看,发现这些空格字符的十六进制值是“c2a0”,其来源是网页控制的特殊字符,这是一个叫做Non-breaking space的东西,用于阻止在此处自动换行和阻止多个空格被压缩成一个。就是&nbsp。

    二、替换的有效方法:使用str.replace(u'xa0',u'')命令即可

    三、示例
    (1)原始文件:1.txt
    显示如下:(每一行前面都有四个“c2a0”,显示为4个空格,即显示?之处)
    (base) [python@ELK ~]$ vi 1.txt
    ????第一章预言

    ????除了没用的肉体自杀和精神逃避,第三种自杀的态度是坚持奋斗,对抗人生的荒谬。

    ????这是加缪,一个存在主义大师说的,云琅非常的认同这句话。

    使用:%!xxd命令进入十六进制编辑状态,显示如下:
    (base) [python@ELK ~]$ vi 1.txt
    0000000: c2a0 c2a0 c2a0 c2a0 e7ac ace4 b880 e7ab  ................
    0000010: a0e9 a284 e8a8 800a 0ac2 a0c2 a0c2 a0c2  ................
    0000020: a0e9 99a4 e4ba 86e6 b2a1 e794 a8e7 9a84  ................
    0000030: e882 89e4 bd93 e887 aae6 9d80 e592 8ce7  ................
    0000040: b2be e7a5 9ee9 8083 e981 bfef bc8c e7ac  ................
    0000050: ace4 b889 e7a7 8de8 87aa e69d 80e7 9a84  ................
    0000060: e680 81e5 baa6 e698 afe5 9d9a e68c 81e5  ................
    0000070: a58b e696 97ef bc8c e5af b9e6 8a97 e4ba  ................
    0000080: bae7 949f e79a 84e8 8d92 e8b0 ace3 8082  ................
    0000090: 0a0a c2a0 c2a0 c2a0 c2a0 e8bf 99e6 98af  ................
    00000a0: e58a a0e7 bcaa efbc 8ce4 b880 e4b8 aae5  ................
    00000b0: ad98 e59c a8e4 b8bb e4b9 89e5 a4a7 e5b8  ................
    00000c0: 88e8 afb4 e79a 84ef bc8c e4ba 91e7 9085  ................
    00000d0: e99d 9ee5 b8b8 e79a 84e8 aea4 e590 8ce8  ................
    00000e0: bf99 e58f a5e8 af9d e380 820a            ............

    (2)替换代码:1.py
    (base) [python@ELK ~]$ vi 1.py
    # -*- coding:utf-8 -*-
    import os
    f=open("1.txt","r")
    str=f.read()
    str1=str.replace(u"xa0", u'')   #注意,此处"xa0"不能输入为"xc2xa0"!
    g=open("3.txt","w",encoding="utf-8")
    g.write(str1)

    (3)输出的新文件:3.txt
    显示如下:(每一行前面的异常空格已不见了)
    (base) [python@ELK ~]$ vi 3.txt
    第一章预言

    除了没用的肉体自杀和精神逃避,第三种自杀的态度是坚持奋斗,对抗人生的荒谬。

    这是加缪,一个存在主义大师说的,云琅非常的认同这句话。

  • 相关阅读:
    小数的进制转换
    水题 O
    水题 J
    水题T,二进制转16进制
    水题B
    水题C
    HDU 2042
    HDU 2041
    Index For SQL Server
    Learning Note For Angular
  • 原文地址:https://www.cnblogs.com/sfccl/p/11406315.html
Copyright © 2020-2023  润新知