找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 13788|回复: 2

[原创代码] python正则表达式一列文本转成三列.py

[复制链接]
发表于 2015-11-22 14:52:48 | 显示全部楼层 |阅读模式
  1. """
  2. python正则表达式一列文本转成三列.py
  3. 依山居 8:18 2015/11/12
  4. 总结,我自己生成了百万行来测试,文本文件8M大,内容为1-999999
  5. 运行耗时1秒左右
  6. """
  7. print("运行中..."*3)
  8. import re
  9. import time
  10. start=time.time()

  11. out=open("out.txt","w+")
  12. reg=re.compile(r"(.*)\n(.*)\n(.*)\n")
  13. with open("a.txt") as f:   
  14.     txt=f.read()
  15.     f.close()
  16. result=re.sub(reg,r"\1  \2  \3\n",txt)
  17. #print(result)
  18. out.write(result)
  19. out.close()

  20. end=time.time()
  21. pt=end-start
  22. print("运行耗时:",pt)
  23. try:
  24.     input("按回车退出")
  25. except SyntaxError:
  26.     pass
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 感谢分享

查看全部评分

发表于 2016-2-24 07:10:33 | 显示全部楼层
  1. """
  2. 一列数字转成N列.py
  3. 2016年2月24日 05:45:58 codegay

  4. """
  5. #生成测试数据,得到a.txt为1列1-999的内容
  6. with open("a.txt","w+") as f:
  7.     [f.write(str(r).zfill(4)+"\n") for r in range(1,999)]

  8. #一列数字转成N列.py
  9. N=50
  10. with open("a.txt","r+") as f:
  11.     #脱掉数据后面的换行符,如果能被N整除则保留
  12.     txt=f.readlines()
  13.     sn=[txt[r] if (r>1 and (r+1)%N==0) else txt[r].replace("\n",",") for r in range(0,len(txt)) ]
  14.     print(sn)
  15.     #指针回到文件头部清空文件
  16.     f.seek(0)
  17.     f.truncate()
  18.     f.writelines(sn)
  19.    
  20.    

复制代码

评分

参与人数 1技术 +1 收起 理由
依山居 + 1 1

查看全部评分

发表于 2016-3-2 01:17:48 | 显示全部楼层
  1. """
  2. 一列数字转成N列2.py
  3. http://www.oschina.net/question/2400361_2152116
  4. 2016年3月1日 23:49:33 codegay
  5. 这个问题本质等于问如何把一个列表或者一个字符串分成N份
  6. 参考http://blog.topspeedsnail.com/archives/1469
  7. """
  8. #生成测试数据,得到a.txt为1列1-999的内容
  9. with open("a.txt","w+") as f:
  10.     [f.write(str(r).zfill(4)+"\n") for r in range(1,999)]

  11. #一列数字转成N列.py
  12. N=50
  13. txt=[r.rstrip("\n") for r in open("a.txt").readlines()]
  14. re=[txt[r:r+N] for r in range(0,len(txt),N)]
  15. f=open("out.txt","w+")
  16. [f.write(','.join(r)+"\n") for r in re]   
  17. f.close()
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 02:31 , Processed in 0.011276 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表