剑客
关注科技互联网

docx add paragraph

接手了一份老代码, 使用docx库生成word文档,然后很奇怪有份文件代码一直

运行不起来,没法生成word文档

Debug

从代码逻辑上分析代码是没问题的,但为什么那份文档能让

代码不能正确工作呢,于是开始debug。很快就确认了bug所在代码行。接着确定了

是文档中的一段文本编码有问题让代码无法正确工作。然而无论我怎么看以及打印输出

都没发现什么问题,然后跟一个老司机聊起,他顺手就把那段文本复制到sublime里,

结果发现里面居然有个不可见字符,那段文本估计是从

网页直接复制的,里面有不可见字符/u0008,也就是BS(退格)。真是醉了。

docx也太弱了。。感觉一点容错没有啊

Solved

然后就开始过滤,由于要保存原文本的换行以及回车符,于是代码如下:

re.sub("[/u0000-/u0009]|[/u000B,/u000C]|[/u000E-/u001F]"," ",text)

感觉应该有更好的正则表达式写法,可惜我水平有限写不出更好的。

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址