亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

python實現文本文件合并

2020-01-04 17:53:07
字體:
來源:轉載
供稿:網友
本文給大家匯總介紹了3種合并文本文件的方法,程序的實現思路都非常不錯,這里推薦給大家,有需要的小伙伴可以參考下。
 

python合并文本文件示例代碼。

python實現兩個文本合并

employee文件中記錄了工號和姓名

cat employee.txt:

100 Jason Smith200 John Doe300 Sanjay Gupta400 Ashok Sharma

bonus文件中記錄工號和工資

cat bonus.txt:

100 $5,000200 $500300 $3,000400 $1,250

要求把兩個文件合并并輸出如下, 處理結果:

400 ashok sharma $1,250100 jason smith $5,000200 john doe $500300 sanjay gupta $3,000

這個應該是要求用shell來寫的,但我的shell功底不怎么樣,就用python來實現了
注意,按題目的意思,在輸出文件中還需要按照姓名首字母來排序的

#! /usr/bin/env python #coding=utf-8fp01=open("bonus.txt","r")a=[]for line01 in fp01:a.append(line01)fp02=open("employee.txt","r")fc02=sorted(fp02,key=lambda x:x.split()[1])for line02 in fc02:i=0while line02.split()[0]!=a[i].split()[0]:i+=1print "%s %s %s %s" % (line02.split()[0],line02.split()[1],line02.split()[2],a[i].split()[1])fp01.close()fp02.close()

我們再來看一段同樣功能的 代碼

# coding gbk # # author: GreatGhoul # email : greatghoul@gmail.com # blog : http://greatghoul.javaeye.com   import sys,os,msvcrt   def join(in_filenames, out_filename):   out_file = open(out_filename, 'w+')       err_files = []   for file in in_filenames:     try:       in_file = open(file, 'r')       out_file.write(in_file.read())       out_file.write('/n/n')       in_file.close()     except IOError:       print 'error joining', file       err_files.append(file)   out_file.close()   print 'joining completed. %d file(s) missed.' % len(err_files)   print 'output file:', out_filename   if len(err_files) > 0:     print 'missed files:'     print '--------------------------------'     for file in err_files:       print file     print '--------------------------------'   if __name__ == '__main__':   print 'scanning...'   in_filenames = []   file_count = 0   for file in os.listdir(sys.path[0]):     if file.lower().endswith('[all].txt'):       os.remove(file)     elif file.lower().endswith('.txt'):       in_filenames.append(file)       file_count = file_count + 1   if len(in_filenames) > 0:     print '--------------------------------'     print '/n'.join(in_filenames)     print '--------------------------------'     print '%d part(s) in total.' % file_count     book_name = raw_input('enter the book name: ')     print 'joining...'     join(in_filenames, book_name + '[ALL].TXT')   else:     print 'nothing found.'   msvcrt.getch()

最后我們再來看一個小編遇到的情況:

今天匯編的時候在阿甘的博客里面看到了一部小說《瘋狂的程序員》,于是網上搜了下準備放到手機里閑時看看,無奈下載后發現是分章節的txt文本,一共有87個文件,考慮到閱讀起來不是很方便,于是想找個現成的工具合并txt文本。

結果嘗試了幾個工具后覺得合并效果都不給力啊,于是打算自己動手。其實cmd的命令"type *.txt >> crazy-programmer.txt"還是很有效果的,然而合并后的txt文件卻十分龐大,所以我還是自己寫了一個腳本完成了合并。

說明:由于我下載的87個txt文件的字符編碼格式都不統一,所以我用chardet模塊判斷字符編碼類型后再用codecs模塊的codecs.open功能解決了編碼問題。如果直接用file的open打開txt文件的話,在UCS-2 Little Endian的編碼情況下,file.read()遇到中文的冒號(即“:”)后會無法讀取冒號以后的內容,所以需要用codecs.open(path,'r',encoding)來解決。

如果還有問題可以留言,代碼如下:

#!coding: cp936 import codecs, chardet  def fileopen(filename):   f = open(filename, 'r')   s = f.read()   if(chardet.detect(s)['encoding'] == 'UTF-16LE'):     f.close()     f = codecs.open(filename, 'r', 'utf-16-le')         data = f.read().encode('gb2312', 'ignore')     f.close()   elif(chardet.detect(s)['encoding'] == 'GB2312'):     data = s     f.close()   return data  i = 1 while i <=87:   if(i < 10):     filename = '0'+str(i)+'.txt'   else:     filename = str(i)+'.txt'   text = fileopen(filename)   file('crazy-p.txt', 'a+').write(text)   i = i+1 

其中,chardet模塊需要下載安裝,腳本還可以改進以適應更多種情況,我就懶了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人精品999| 国产精品久久av| 亚洲欧美福利视频| xvideos国产精品| 国产精品网站视频| 日韩精品久久久久久福利| 欧洲美女免费图片一区| 日韩欧美在线中文字幕| 九色成人免费视频| 国产精品视频资源| 国产免费一区二区三区香蕉精| 亚洲国产精品女人久久久| 久久中文字幕视频| 91精品国产自产在线老师啪| 亚洲九九九在线观看| 亚洲一区二区三区久久| 久久这里只有精品99| 欧美激情精品久久久久久| 国产精品三级久久久久久电影| 26uuu亚洲伊人春色| 成人黄色影片在线| 久久久亚洲精品视频| 国产一区二区三区三区在线观看| 日韩av黄色在线观看| 亚洲最大中文字幕| 亚洲自拍小视频| 成人有码在线视频| 久久久精品国产| 97精品视频在线播放| 91九色综合久久| 欧美日韩亚洲91| 亚洲欧美中文字幕| 亚洲精品成人久久| 国产亚洲精品久久久久久777| 久久久天堂国产精品女人| 精品亚洲一区二区三区在线播放| 日韩成人激情影院| 日韩电影在线观看永久视频免费网站| 日韩成人xxxx| 正在播放亚洲1区| 精品国产福利视频| 日韩视频永久免费观看| 亚洲黄色www网站| 国产精品va在线播放我和闺蜜| 88xx成人精品| 久久亚洲精品小早川怜子66| 久久综合色88| 国语自产精品视频在线看一大j8| 亚洲精品国产精品国自产观看浪潮| 亚洲精品国精品久久99热一| 超碰精品一区二区三区乱码| 欧美成人午夜影院| 国产精品视频在线播放| 91精品国产91| 亚洲女同性videos| 日韩激情视频在线播放| 欧美精品一区三区| 国产成人一区二区三区小说| 亚洲视频在线观看网站| 国产精品视频最多的网站| 日韩免费在线播放| 美女性感视频久久久| 日韩精品极品在线观看播放免费视频| 成年人精品视频| 欧美激情一区二区三区久久久| 久久成人精品一区二区三区| 欧美精品videossex88| 国产精品亚洲网站| 欧美性极品xxxx娇小| 91高潮在线观看| 国产在线精品成人一区二区三区| 中文字幕日韩欧美精品在线观看| 这里只有精品在线观看| 欧美精品手机在线| 精品国产区一区二区三区在线观看| 久久综合伊人77777尤物| 欧洲成人在线视频| 亚洲电影中文字幕| 九九久久国产精品| 国产精品劲爆视频| 中文字幕久久久av一区| 91精品国产91| 国产日韩精品一区二区| 国产视频精品在线| 国产精品夜间视频香蕉| 精品国产老师黑色丝袜高跟鞋| 伊人久久久久久久久久久| 国产成人精品久久久| 久久亚洲电影天堂| 国产精品一区二区三区久久久| 国产一区二区在线免费视频| 欧美成人免费va影院高清| 欧美日韩精品在线观看| 精品久久久av| 日本精品久久久| 亚洲天堂av在线免费观看| 日本成熟性欧美| 国产精品久久久av| 在线午夜精品自拍| 亚洲福利视频久久| 国产日韩欧美中文| 国产精品福利片| 国产精品入口日韩视频大尺度| 亚洲国产私拍精品国模在线观看| 国产精品自拍视频| 亚洲国产精品免费| 51久久精品夜色国产麻豆| 国产精品一区二区久久久| 亚洲视频在线播放| 亚洲天堂av网| 久久久久久久电影一区| 国产精品久久久久av| 国产v综合v亚洲欧美久久| 国产精品99久久久久久人| 国产精品精品视频| 久久久极品av| 久久影院资源站| 成人黄色av免费在线观看| 2020欧美日韩在线视频| 欧美大片在线影院| 国产精品黄色av| 96国产粉嫩美女| 久久九九免费视频| 亚洲国产精品成人va在线观看| 国产成人午夜视频网址| 欧美极度另类性三渗透| 亚洲激情视频在线观看| 91精品国产一区| 色偷偷噜噜噜亚洲男人的天堂| 国产精品h片在线播放| 91久久精品久久国产性色也91| 中文字幕精品在线视频| 亚洲精品久久久久中文字幕二区| 精品国产依人香蕉在线精品| 欧美在线性视频| 国产精品福利无圣光在线一区| 在线观看视频亚洲| 色一情一乱一区二区| 国产成人精品av| 国产欧美久久久久久| 一本一道久久a久久精品逆3p| 亚洲人午夜色婷婷| 久久精品国产免费观看| 视频在线观看一区二区| 日本中文字幕成人| 国产欧美久久久久久| 精品福利在线看| 亚洲自拍欧美色图| 欧美孕妇孕交黑巨大网站| 亚洲精品国产欧美| 国产99久久精品一区二区 夜夜躁日日躁| 国产精品美乳在线观看| 这里只有精品视频在线| 伊人久久久久久久久久久久久| 在线精品视频视频中文字幕| 欧美电影第一页| 亚洲电影免费观看高清完整版在线观看| 亚洲性夜色噜噜噜7777| 欧美日韩第一视频| 精品视频在线播放色网色视频| 成人国产在线激情| 日韩av综合网| 国产精品观看在线亚洲人成网| 欧美老妇交乱视频|