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