作者Conjuror (阿糾)
看板Python
標題Re: [問題] File1內容跳一行再加File2內容
時間Fri Apr 17 14:48:35 2015
※ 引述《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 "")
這樣?
--
一直很想按 esc + :wq 離開…
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.10.190
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1429253322.A.0A7.html
推 Dong0129: 請問map的功能是什麼呢? 04/17 15:17
→ Conjuror: 以這裡的用法跟 zip 有點像,好處是可以處理不同長度的 04/17 17:07
→ Conjuror: list,它會自動幫少的那邊補 None 04/17 17:07
→ bibo9901: 用 itertools.longest_zip 更方便 04/17 20:12
→ bibo9901: 不過用 shell 最快:$ paste -d ' ' file1 file2 04/17 20:12
→ bigpigbigpig: itertools zip_longest() 04/17 21:17
推 Dong0129: 找機會來研究一下...不過python在台灣算流行嗎?? 04/18 10:45
→ bibo9901: 在台灣流不流行不重要, 網路上資源很多, 社群也很多 04/18 13:49