依山居 ( 伸手党去死,私信问问题的去死)当前离线
中尉
""" python正则表达式一列文本转成三列.py 依山居 8:18 2015/11/12 总结,我自己生成了百万行来测试,文本文件8M大,内容为1-999999 运行耗时1秒左右 """ print("运行中..."*3) import re import time start=time.time() out=open("out.txt","w+") reg=re.compile(r"(.*)\n(.*)\n(.*)\n") with open("a.txt") as f: txt=f.read() f.close() result=re.sub(reg,r"\1 \2 \3\n",txt) #print(result) out.write(result) out.close() end=time.time() pt=end-start print("运行耗时:",pt) try: input("按回车退出") except SyntaxError: pass复制代码
评分人数
codegay 当前离线
少校
""" 一列数字转成N列2.py http://www.oschina.net/question/2400361_2152116 2016年3月1日 23:49:33 codegay 这个问题本质等于问如何把一个列表或者一个字符串分成N份 参考http://blog.topspeedsnail.com/archives/1469 """ #生成测试数据,得到a.txt为1列1-999的内容 with open("a.txt","w+") as f: [f.write(str(r).zfill(4)+"\n") for r in range(1,999)] #一列数字转成N列.py N=50 txt=[r.rstrip("\n") for r in open("a.txt").readlines()] re=[txt[r:r+N] for r in range(0,len(txt),N)] f=open("out.txt","w+") [f.write(','.join(r)+"\n") for r in re] f.close()复制代码
TOP
""" 一列数字转成N列.py 2016年2月24日 05:45:58 codegay """ #生成测试数据,得到a.txt为1列1-999的内容 with open("a.txt","w+") as f: [f.write(str(r).zfill(4)+"\n") for r in range(1,999)] #一列数字转成N列.py N=50 with open("a.txt","r+") as f: #脱掉数据后面的换行符,如果能被N整除则保留 txt=f.readlines() sn=[txt[r] if (r>1 and (r+1)%N==0) else txt[r].replace("\n",",") for r in range(0,len(txt)) ] print(sn) #指针回到文件头部清空文件 f.seek(0) f.truncate() f.writelines(sn) 复制代码