python读写大文件

直接上代码:

import easygui
import os
path = easygui.fileopenbox()#path是打开的文件的全路径
if path:#如果选择打开文件,没有选择取消
    b = os.path.splitext(path)#把打开的文件的全路径分割成文件名和后缀名
    c = [b[0], '_trace', '.xyz']#文件名加上其他字符变成想要的文件名,相当于在原来的路径下修改一下文件名
    d = ''.join(c)#要写入的文件的名字,
    with open(d, 'w+') as f1:
        with open(path, 'r', encoding='utf-8') as f:
            for line in f:
                s1 = line.strip()#把每一行行末的换行符去掉
                s2 = (s1.strip().split(' ')[-6:-3][::-1])#以空格分隔数据,并倒着去每一行的第4,5,6个数据(Y,X,H)
                s3 = ' '.join(s2)#用空格连接取到的数据
                f1.writelines(s3)#写入文件
                f1.writelines('\n')#写换行

测试文件在这里:

链接:https://pan.baidu.com/s/1UM5USNYiQHWz39uZ6jJdOg
提取码:g89v

注意:

str.split()  清除默认 空格和tab  对空格数量不敏感 

str.split(' ') 只清除一个空格     对空格数量敏感

下面是不带对话框的版本:

import os
path = ''#path是打开的文件的全路径
if path:#如果选择打开文件,没有选择取消
    b = os.path.splitext(path)#把打开的文件的全路径分割成文件名和后缀名
    c = [b[0], '_trace', '.xyz']#文件名加上其他字符变成想要的文件名,相当于在原来的路径下修改一下文件名
    d = ''.join(c)#要写入的文件的名字,
    with open(d, 'w+') as f1:
        with open(path, 'r', encoding='utf-8') as f:
            for line in f:
                s1 = line.strip()#把每一行行末的换行符去掉
                s2 = (s1.strip().split(' ')[-6:-3][::-1])#以空格分隔数据,并倒着去每一行的第4,5,6个数据(Y,X,H)
                s3 = ' '.join(s2)#用空格连接取到的数据
                f1.writelines(s3)#写入文件
                f1.writelines('\n')#写换行

 

posted on 2018-11-29 22:38  一杯明月  阅读(3476)  评论(0编辑  收藏  举报