python处理文本中的标点问题

有原文本a.txt存储有:,hongkong12345woai.haode2347iam234中国,好234中国人!。234我是中国人234编程实现删除所有带标点的行,得... 有原文本a.txt存储有:
, hong kong 1 2 3 4 5
wo ai . hao de 2 3 4 7
i am 2 3 4
中国 , 好 2 3 4
中国人 ! 。 2 3 4
我是 中国人 2 3 4

编程实现删除所有带标点的行,得到新的文本为:b.txt
i am 2 3 4
我是 中国人 2 3 4
展开
 我来答
栩箭
推荐于2017-11-27 · TA获得超过5310个赞
知道大有可为答主
回答量:3036
采纳率:0%
帮助的人:1659万
展开全部

收集了所有的英文标点跟常用的中文标点来做判断. 目前程序输入的a.txt需要是utf8编码的, 如果你用的是其他编码格式, 把最后一行的utf8改成你自己用的编码格式应该就可以了.

#! coding: utf8
from __future__ import unicode_literals
import re
non_stops = (
    '\uFF02\uFF03\uFF04\uFF05\uFF06\uFF07\uFF08\uFF09\uFF0A\uFF0B\uFF0C\uFF0D'
    '\uFF0F\uFF1A\uFF1B\uFF1C\uFF1D\uFF1E\uFF20\uFF3B\uFF3C\uFF3D\uFF3E\uFF3F'
    '\uFF40\uFF5B\uFF5C\uFF5D\uFF5E\uFF5F\uFF60'
    '\uFF62\uFF63\uFF64'
    '\u3000\u3001\u3003'
    '\u300B\u300C\u300D\u300E\u300F\u3010\u3011'
    '\u3014\u3015\u3016\u3017\u3018\u3019\u301A\u301B\u301C\u301D\u301E\u301F'
    '\u3030'
    '\u303E\u303F'
    '\u2013\u2014'
    '\u2018\u2019\u201B\u201C\u201D\u201E\u201F'
    '\u2026\u2027'
    '\uFE4F'
)
stops = (
    '\uFF01'
    '\uFF1F'
    '\uFF61'
    '\u3002'
)

punctuation = non_stops + stops
punctuation += '\u0021-\u002f\u003a-\u0040\u005b-\u0060\u007b-\u007e'
r = re.compile('[{}]'.format(punctuation))
fin = open('a.txt', 'rb')
fout = open('b.txt', 'wb')
[fout.write(e) for e in fin if not r.search(e.decode('utf8'))]
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式