返回列表 发帖

[原创代码] 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:
    passCOPY
1

评分人数

    • CrLf: 感谢分享技术 + 1
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

"""
一列数字转成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)
   
    COPY
1

评分人数

去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

"""
一列数字转成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()COPY
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

返回列表