一个简单文本处理问题的多种解法
2019独角兽企业重金招聘Python工程师标准>>>
问题:
将如下形式文本
Name: John Doe1
address : somewhere
phone: 123-123-1234Name: John Doe2
address : somewhere
phone: 123-123-1233Name: John Doe3
address : somewhere
phone: 123-123-1232
转换成如下形式
Name: John Doe1 address : somewhere phone: 123-123-1234
Name: John Doe2 address : somewhere phone: 123-123-1233
Name: John Doe3 address : somewhere phone: 123-123-1232
解法1:awk
awk 'BEGIN { FS="\n"; RS=""; OFS="\t\t" } { print $1, $2, $3 }' file.txt
解法2:sed
cat input.txt | sed '/^$/d' | sed 'N; s:\n:\t\t:; N; s:\n:\t\t:'
cat input.txt | sed '/^$/d' | sed 'N; N; s:\n:\t\t:g'
解法3:python
#!/usr/bin/env pythondef parse(inputfile, outputfile):dictInfo = {'Name':None, 'address':None, 'phone':None}for line in inputfile:if line.startswith('Name'):dictInfo['Name'] = line.split(':')[1].strip()elif line.startswith('address'):dictInfo['address'] = line.split(':')[1].strip()elif line.startswith('phone'):dictInfo['phone'] = line.split(':')[1].strip()s = 'Name: '+dictInfo['Name']+'\t'+'address: '+dictInfo['address'] \+'\t'+'phone: '+dictInfo['phone']+'\n'outputfile.write(s)if __name__ == '__main__':with open('output.txt', 'w') as outputfile:with open('infomation.txt') as inputfile:parse(inputfile, outputfile)
解法4 (paste)
chenqi@chenqi-OptiPlex-760:~/mypro/python/file-parsing$ paste -s -d'\t\t\t\n' infomation.txt
Name: John Doe1 address : somewhere phone: 123-123-1234
Name: John Doe2 address : somewhere phone: 123-123-1233
Name: John Doe3 address : somewhere phone: 123-123-1232
转载于:https://my.oschina.net/u/158589/blog/82515
一个简单文本处理问题的多种解法相关推荐
- Minimum Inversion Number HDU - 1394(求一个数字环的逆序对+多种解法)
题意: 给出n个数(0~n-1,每个数仅出现一次),问它长为n的循环序列中逆序对最少的数量. 多种解法:暴力+树状数组+分治+规律推导公式 题目: The inversion number of a ...
- mcem r语言代码_一个简单文本分类任务-EM算法-R语言
一.问题介绍 概率分布模型中,有时只含有可观测变量,如单硬币投掷模型,对于每个测试样例,硬币最终是正面还是反面是可以观测的.而有时还含有不可观测变量,如三硬币投掷模型.问题这样描述,首先投掷硬币A,如 ...
- C/C++ 实现一个简单的文本编辑器(windows程序设计)
一.实现目的 为了更好的学习QT中的窗口.句柄等概念,先对Windows编程进行了大体了解,通过一个简单文本编辑器的实现,来加深对这些基本概念的理解. 二. 基本功能 支持拷贝粘贴 支持文件保存(保存 ...
- python源码编译 带tkinter_python通过Tkinter库实现的一个简单的文本编辑器源码
下边资料是关于python通过Tkinter库实现的一个简单的文本编辑器的内容. from tkSimpleDialog import askstring from tkFileDialog impo ...
- C++ 容器的综合应用的一个简单实例——文本查询程序
[0. 需求] 最近在粗略学习<C++ Primer 4th>的容器内容,关联容器的章节末尾有个很不错的实例. 通过实现一个简单的文本查询程序,希望能够对C++的容器学习有更深的理解. 由 ...
- C++程序设计:原理与实践(进阶篇)15.6 实例:一个简单的文本编辑器
15.6 实例:一个简单的文本编辑器 列表最重要的性质就是可以在不移动元素的情况下对其进行插入或删除操作.下面我们通过一个例子来说明这一点.考虑应该如何在文本编辑器中表示一个文本文件中的字符.所选用的 ...
- 四步快速配置一个简单高效的文本生成图像基准模型 T2I baseline
本文将介绍一个简单高效的文本生成图像基准模型,该基准模型是DF-GAN20版代码,清楚简单,实用性高,本基准模型代码在他的基础上经过少量简化和处理,虚拟环境也进行了打包,非常适合作为一个基线模型,然后 ...
- python通过Tkinter库实现的一个简单的文本编辑器源码
下边资料是关于python通过Tkinter库实现的一个简单的文本编辑器的内容. from tkSimpleDialog import askstring from tkFileDialog impo ...
- 一个简单的文本聚类实现(python)
具体实现如下,使用python+结巴分词+scikit-learn实现一个简单的文本聚类得到会议室数据,直接从DBA线上数据库得到预约数据,如下所示,共有3列,分别是会议ID,会议标题和会议时间 因为 ...
最新文章
- R语言使用ggplot2包的快速可视化函数qplot绘制散点图(设置数据点的形状、大小)实战
- IIS弹出服务没有及时响应启动或控制请求
- linux中在vi编辑器中执行存盘退出命令是?
- Python 编程快速上手 第十五章 保持时间,计划任务和启动程序
- 关于ffmpeg中rtmp无法设置超时时间的bug修复
- eclipse新建项目有红叉_selenum+java+eclipse环境搭建和浏览器驱动配置
- [创业基础笔记] 第1讲-认识创业与创业者
- LSI SAS 3108 配置操作
- 小程序 -- [sitemap 索引情况提示] 根据 sitemap 的规则[0],当前页面 [pages/index/index] 将被索引
- 微软Build 2017首日主角AI 同时发布.NET Core 2.0 Preview 1
- 双向(端)链表、栈、队列
- 【C语言深入】[002] valotile 关键字:
- JetBrains:修改C盘中的JetBrains家族软件如PyCharm、WebStorm等的缓存文件位置
- 多目标跟踪算法 | DeepSort
- 编写函数,求字符串的长度
- svn 命令行使用总结
- 2023年直播行业的困境是什么?未来有哪些发展趋势?
- 迭代法求解递推方程,
- ceisum添加风场插件
- excel单元格内容拆分_拆分单元格内容,表哥表妹不要哭