一、背景:在爬取网络小说生成的文件中,发现有些空格没法替换,使用十六进制编辑器查看,发现这些空格字符的十六进制值是“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"不能输入为"\xc2\xa0"!
g=open("3.txt","w",encoding="utf-8")
g.write(str1)

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

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

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

关于替换“c2a0”十六进制字符的方法的更多相关文章

  1. JAVA中替换字符的方法replace和replaceAll 区别

    replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSe ...

  2. Notepad++正则表达式查找替换文本中文字符

    测试需求 测试工具中xml配置文件中注释字段包含中文字符,在Win10系统下使用工具中偶尔会出现中文乱码导致配置文件失效.解决方法将配置文件中的中文注释换成英文注释或者直接替换删除.如何将配置文件中的 ...

  3. python购物&常用字符处理方法

    python 一个购物车的例子 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 '''购物车''' 4 5 goods = [ 6 7 {&quo ...

  4. ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证

    ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...

  5. 【Linux基础】tr命令替换和删除字符

    1.tr命令 tr可以对来自标准输入的字符进行替换.压缩和删除,可以将一组字符变成另外一组字符.通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其 ...

  6. tr 替换或删除字符

    1.命令功能 tr 从标准输入中替换,压缩间隔或者删除字符并从定向到标准输出. 2.语法格式 tr  option  SET1  SET2 参数 参数说明 -c 取代所有SET1中字符串 -d 删除所 ...

  7. linux(centos8):用tr替换或删除字符

    一,tr命令的用途 tr命令可以替换或删除文件中的字符 它从标准输入设备读取数据, 处理完成将结果输出到标准输出设备 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnbl ...

  8. python字符串替换的2种有效方法

    python 字符串替换可以用2种方法实现:1是用字符串本身的方法.2用正则来替换字符串 下面用个例子来实验下:a = 'hello word'我把a字符串里的word替换为python1用字符串本身 ...

  9. Java中生成随机字符的方法总结

    package learnExercise; public class RandomCharacter { public static char getRandomCharacter(char ch1 ...

随机推荐

  1. python安装pycrypto库

    使用pycharm时安装pycrypto库,一直安装不上,提示安装成功,退出去一看,依旧没有 最后选择了pip安装,但一直报错(Microsoft Visual C++ 9.0 is required ...

  2. MES系统介绍(一)

    由于本人从事的行业主要为Mes行业,所以这里准备介绍一下Mes系统的基础概念和实际运用,并且以自己做过的一个实际案例(包括代码)来详细描述自己对Mes系统的认识,帮助小白扫盲,望大神勿喷. MES系统 ...

  3. TSP变形(三进制状压)

    题目:HDU3001 #include <bits/stdc++.h> using namespace std; ],vis[][],dis[][]; ][]; void init()// ...

  4. java读源码 之 map源码分析(HashMap)二

    ​ 在上篇文章中,我已经向大家介绍了HashMap的一些基础结构,相信看过文章的同学们,应该对其有一个大致了了解了,这篇文章我们继续探究它的一些内部机制,包括构造函数,字段等等~ 字段分析: // 默 ...

  5. 阿里面试居然跟我扯了半小时的CyclicBarrier

    一个大腹便便,穿着格子衬衫的中年男子,拿着一个贴满Logo的Mac向我走来,看着稀少的头发,我心想着肯定是顶级技术大牛吧!但是我也是一个才华横溢的人,稳住我们能赢. 面试官:您好,先做一下自我介绍吧! ...

  6. python语法学习第十一天--迭代器

    迭代:类似循环,这一次的值作为下一次迭代的开始值 BIF:iter():将某个可以作为迭代器的容器变为迭代器   next():做下一次迭代 当next()到最后一个时,抛出StopIteration ...

  7. 设计模式之GOF23观察者模式

    观察者模式Observer 广播机制 场景:多个观察者--被通知改变 CS的时候,人物移动坐标变化,更新每个人地图上的坐标 核心:当目标对象(Subject)的状态值改变时,需要及时告知所有观察者(O ...

  8. [zoj3623]背包模型

    给定n种物品,每种物品需要ti时间生产出来,生产出来以后,每单位时间可以创造wi个价值.如果需要创造至少W个价值,求最少时间. 思路:dp[j]表示用时间j所能创造的最大价值,则有转移方程:dp[j ...

  9. python实现边缘提取

    1.  题目描述 安装opencv环境,实现边缘提取 2.  实现过程 1. 安装opencv+python环境 2. 打开图片 3. 将图片二值化 4. 提取边缘 5. 显示图片 3.  运行结果 ...

  10. 黑马程序员_毕向东_Java基础视频教程——进制转换之负数二进制(随笔)

    进制转换之负数二进制 负数的二进制表现形式 6 = 110 -6 : 其实就是 6 的二进制取反再 + 1 一个整数在内存中是占 4 个字节 **取反:将二进制里的 1 变成 0,0 变成 1. 以6 ...