Python-打开和更改大型文本文件

Python-打开和更改大型文本文件,第1张

Python-打开和更改大型文本文件

您需要在每次迭代中读取一个咬合,对其进行分析,然后再写入另一个文件或中

sys.stdout
。试试这个代码:

mesh = open("file.mesh", "r")mesh_out = open("file-1.mesh", "w")c = mesh.read(1)if c:    mesh_out.write("{")else:    exit(0)while True:    c = mesh.read(1)    if c == "":        break    if c == "[":        mesh_out.write(",{")    elif c == "]":        mesh_out.write("}")    else:        mesh_out.write©

UPD:

它的工作速度非常慢(这要归功于jamylak)。所以我改变了它:

import sysimport redef process_char(c, stream, is_first=False):    if c == '':        return False    if c == '[':        stream.write('{' if is_first else ',{')        return True    if c == ']':        stream.write('}')        return Truedef process_file(fname):    with open(fname, "r") as mesh:        c = mesh.read(1)        if c == '': return        sys.stdout.write('{')        while True: c = mesh.read(8192) if c == '':     return c = re.sub(r'[', ',{', c) c = re.sub(r']', '}', c) sys.stdout.write(c)if __name__ == '__main__':    process_file(sys.argv[1])

因此,现在在1.4G文件上可以工作约15秒。要运行它:

$ python mesh.py file.mesh > file-1.mesh


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5650491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存