Re: [問題] File1內容跳一行再加File2內容

作者: Conjuror (阿糾)   2015-04-17 14:48:35
※ 引述《bigpigbigpig (To littlepig with love)》之銘言:
: ※ 引述《Dong0129 (阿東)》之銘言:
: : 請問各位版友,
: : 我有兩個檔案,
: : File1: File2:
: : 1 5
: : 2 6
: : 3 7
: : 4 8
: : 要合併成:
: : File3:
: : 1 5
: : 2 6
: : 3 7
: : 4 8
: : 目前的code:
: : rfd1=open("file1","r")
: : rfd2=open("file2","r")
: : wfd=open("file3","w")
: : for i in rfd1:
: : if i[-1]=='\n':
: : i=[0:-1]
: : wfd.write(i)
: : for i in rfd2:
: : wfd.write('\t'+i)
: : break
: : rfd1.close()
: : rfd2.close()
: : wfd.close()
: : 目前想出來也可用的程式碼如上,
: : 但在思考是否有更好更短的寫法呢??
: : 還算是python初學者...所以寫的不夠好請見諒!!
with open("file1", "r") as f1,
open("file2", "r") as f2,
open("file3", "w") as f3:
for (i, j) in map(None, f1.readlines(), f2.readlines):
f3.writeline("%s %s" % (i.strip() if i else "", j.strip() if j else "")
這樣?
作者: Dong0129 (阿東跟上面講的情況一樣b)   2015-04-17 15:17:00
請問map的功能是什麼呢?
作者: Conjuror (阿糾)   2015-04-17 17:05:00
https://docs.python.org/2/library/functions.html#map以這裡的用法跟 zip 有點像,好處是可以處理不同長度的list,它會自動幫少的那邊補 Nonehttp://goo.gl/q4Vafj 找到中文的說明給你參考
作者: bibo9901 (function(){})()   2015-04-17 20:12:00
用 itertools.longest_zip 更方便不過用 shell 最快:$ paste -d ' ' file1 file2
作者: bigpigbigpig (To littlepig with love)   2015-04-17 21:17:00
itertools zip_longest()
作者: Dong0129 (阿東跟上面講的情況一樣b)   2015-04-18 10:45:00
找機會來研究一下...不過python在台灣算流行嗎??
作者: bibo9901 (function(){})()   2015-04-18 13:49:00
在台灣流不流行不重要, 網路上資源很多, 社群也很多

Links booklink

Contact Us: admin [ a t ] ucptt.com