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')#写换行