标题: [原创代码] python正则表达式一列文本转成三列.py [打印本页]
作者: 依山居 时间: 2015-11-22 14:52 标题: python正则表达式一列文本转成三列.py
- """
- 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 时间: 2016-2-24 07:10
- """
- 一列数字转成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)
-
-
复制代码
作者: codegay 时间: 2016-3-2 01:17
- """
- 一列数字转成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()
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |