在阅读PDF时,尤其是年代久远的PDF,容易出现类似如下情况,数字和英文成了全角字符,莫名空格和换行,非常抓狂。

2001年9月17日,世 贸 组 织 中 国 工 作 组 第18次 会 议 通 过 了 中 国 入 世 议
定 书 及 附 件 和 中 国 工 作 组 报 告 书,标 志 着 我 国 加 入 世 贸 组 织 的 谈 判 全 部 结 束;
2001年11月10日,在 卡 塔 尔 首 都 多 哈 举 行 的 世 界 贸 易 组 织(WTO)第 四 届
部 长 级 会 议 审 议 并 通 过 了 中 国 加 入 世 界 贸 易 组 织 的 决 定。同 年12月11日,中 国
正 式 加 入 WTO, 成 为其第143个成员.

尝试使用一个 python 脚本+ mac 的自动操作,实现使用一个快捷键把上面的文本处理成正常形式。

只是实现了一个最简单,最根本的需求,主要目的是使用 automator 实现自动化,以后慢慢改。

代码仓库:ChengziCao/TextCleaner (github.com)

import jieba
import pyperclipclass TextCleaner:def __init__(self, str):self.text = strdef text_strip(self):"""移除异常空格、换行"""if TextCleaner.is_contain_chinese(text):# 如果是中文,则去除行内空格、行尾换行self.text = self.text.replace(' ', '').replace('\n', '')else:# 如果是英文,则只去除行尾换行。self.text = self.text.replace('\n', '')return selfdef punctuation_convert(self):"""将英文标点符号替换成中文标点"""e_pun = u',.!?()<>"\':;'c_pun = u',。!?()《》“‘:;'table = {ord(f): ord(t) for f, t in zip(e_pun, c_pun)}self.text = self.text.translate(table)return selfdef remove_chaos(self):"""去除乱码"""gbk_text_list = []for c in self.text:if not TextCleaner.if_contain_chaos(c):gbk_text_list.append(c)self.text = "".join(gbk_text_list)return selfdef full_to_half(self):"""全角转半角"""fullString = str(self.text)halfString = ""for schar in fullString:char_code = ord(schar)if char_code == 12288:char_code = 32elif (char_code >= 65281 and char_code <= 65374):char_code -= 65248halfString += chr(char_code)self.text = halfStringreturn selfdef add_en_cn_space(self):"""对英文单词、数字添加空格"""list1 = list(map(lambda n: ' ' + n + ' ' if (n.encode().isalnum()) else n, jieba.cut(self.text)))self.text = "".join(list1).strip()return self@staticmethoddef if_contain_chaos(text_):"""判断字符是否为GBK字符,如果不是则认为是乱码。因为人眼能识别的乱码在计算机看来并没有想象中那么简单,“涓囧厓锛屾厛锽勬崘鐚”本身也是正常的字符,故将生僻字认为是乱码,这是一个折中的办法。"""try:text_.encode("gb2312")except UnicodeEncodeError:return Truereturn False@staticmethoddef is_contain_chinese(check_str):"""判断字符串中是否包含中文"""for ch in check_str:if u'\u4e00' <= ch <= u'\u9fff':return Truereturn Falseif __name__ == '__main__':# text: str = """2001年9月17日,世 贸 组 织 中 国 工 作 组 第18次 会 议 通 过 了 中 国 入 世 议# 定 书 及 附 件 和 中 国 工 作 组 报 告 书,标 志 着 我 国 加 入 世 贸 组 织 的 谈 判 全 部 结 束;# 2001年11月10日,在 卡 塔 尔 首 都 多 哈 举 行 的 世 界 贸 易 组 织(WTO)第 四 届# 部 长 级 会 议 审 议 并 通 过 了 中 国 加 入 世 界 贸 易 组 织 的 决 定。同 年12月11日,中 国# 正 式 加 入 WTO, 成 为其第143个成员."""text: str = pyperclip.paste()cleaner = TextCleaner(text)cleaner.remove_chaos().text_strip().full_to_half().punctuation_convert().add_en_cn_space()pyperclip.copy(cleaner.text)# print(cleaner.text)

然后打开 mac 的 automator 应用,打开之后选择“新建文稿”,起个名字(不要乱起,后面还会用到),然后选“快速操作”

然后找到“运行shell脚本”双击,工作流程选择“没有输入”,之后就可以像在终端里一样执行python脚本了。

因为我把环境变量写到 ~/.zshrc 里了,只有启动终端时才会加载,所以我写的是python的全路径,正常应该不需要写完整路径。

之后打开系统偏好设置–>键盘–>快捷键,在服务一项中找到通用,刚才新建的快速操作就在这一栏里,指定上自己希望的快捷键。

然后,只需要复制文本,按下快捷键,文本就被处理完成,大功告成啦!

macbook使用automator实现文文本自动化处理相关推荐

  1. html自动化布局,自动化部门任务

    电力系统调度自动化的基本任务是什么? 1.采集数据. 由U收集站端(变电站OR电厂)的电气参数,包括开关位置.保护信号.电压电流等遥测数据.... 2.传输信息. 将U收集到的信息经过可靠的通道传送至 ...

  2. Python的PyAutoGUI库整理中文文档,可以让所有GUI都实现自动化。

    1.0 简介 1.1 目的 PyAutoGUI是一个纯Python的GUI自动化工具,可以模拟鼠标的移动.点击.拖拽,键盘按键输入.按住操作,以及鼠标+键盘的热键同时按住等操作,能完全代替手动操作.还 ...

  3. 图像识别自动化android,Android自动化测试

    写在开头:Android UI 自动化测试推荐网易的Airtest,也是谷歌推荐的,操作简单,而且基于图像识别根据用户操作界面自动生成Python测试代码 JUnit单元测试 testImplemen ...

  4. springboot中文文档_登顶 Github 的 Spring Boot 仓库!艿艿写的最肝系列

    源码精品专栏 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 My ...

  5. iOS自动化测试之Appium的安装和使用

    一.前言 因为需要配合测试同学处理自动化测试方面的东西,所以记录下来自己关于Appium的安装和使用,但是主要是关于安装的,因为安装真是遇到了很多坑,另外,我只是关注iOS App的测试,所以这里没有 ...

  6. Saltstack自动化环境部署

    Saltstack知多少 Saltstack是一种全新的基础设施管理方式,是一个服务器基础架构集中化管理平台,几分钟内便可运行起来,速度够快,服务器之间秒级通讯,扩展性好,很容易批量管理上万台服务器, ...

  7. appium ios 真机自动化环境搭建

    近期由于工作需要,本小菜在弄appium+ios+iphone真机的移动自动化,在网上找寻各种资料,发现针对IOS方面的资料少之又少,公司其它部门的弄过的同事也寥寥无几,即使有,也是安卓方面的.本次书 ...

  8. 《移动App测试实战》——2.2 App UI层面的自动化

    本节书摘来自华章出版社<移动App测试实战>一 书中的第2章,第2.2节,作者:邱鹏 陈吉 潘晓明,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.2 Ap ...

  9. macbook所有型号大全_提高MacBook电池寿命的15个技巧

    苹果的MacBook系列以其电池寿命著称.它们的电池续航时间一般都很好,按照苹果公司的标准,所有型号的电池续航时间都保证为10小时.然而,这里有很多附加的条款和条件,如果你想延长你的MacBook P ...

  10. 【效率】微软开源最强Python自动化神器!不用写一行代码!

    相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也 ...

最新文章

  1. 成为年薪50W+的NLP工程师,需要哪些技能?
  2. 也说电影《魔比斯环》
  3. tor the onion router下载_人教版英语知识点练习:七年级下册Unit8要点讲解,重点短语句型,语法聚焦(可下载打印版,附答案)...
  4. Java Web之基于注解的Spring MVC环境配置
  5. yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss的区别
  6. Lingo软件使用教程
  7. leetcode 927. 三等分
  8. android m3u8 合并,M3u8合并APP
  9. 得胃病者的饮食原则 养胃及食疗菜谱介绍做法
  10. Win7复制文件时出现:“您需要权限来执行操作!”(终极解决方法!)
  11. 廉洁文化 计算机学院,资讯抢先看 | 廉洁文化主题活动优秀作品锦集,请查收~...
  12. Java進階:ExecutorService 線程池
  13. 印象笔记html标签删除吗,我用了9年印象笔记,打算彻底放弃,直到……
  14. 管理-领导:领导百科
  15. Unity 5.6正式版发布,Unity 2017即将来临
  16. windows下枚举串口的方法,超好用,跟设备管理器枚举一样
  17. [31期]命运掌握在自己手中
  18. 使用NoneBot2可视化平台搭建QQ聊天机器人:本地和云部署教程
  19. 【高德地图进阶】--- 3d城市版块之wall
  20. WINDOWS网络服务第一章预习导图

热门文章

  1. 关于错误“未能加载文件或程序集”的错误的若干处理办法——对GAC的简单应用
  2. 与MySQL的纠缠(卸载与安装)
  3. aardio - 仿安装界面进行窗口高度调节的方法
  4. 启动定时器t0的工作指令是_启动定时器 0 工作的指令是使 TCON 的 ( )_学小易找答案...
  5. 在手机与计算机之间进行文件传输的方式,电脑和手机传输文件方法_电脑和手机如何传文件-win7之家...
  6. 容器镜像仓库Harbor安装部署及简单使用
  7. 荣耀4a android art,华丽布局全网通,从一堂课诞生的荣耀4A测评
  8. 高等数学笔记:留数法
  9. 2014微软校园招聘笔试试题(英文)
  10. C++ 小游戏 视频及资料集(十)