日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个简单文本处理问题的多种解法

發布時間:2025/3/17 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个简单文本处理问题的多种解法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的一个简单文本处理问题的多种解法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。