在Python中基于文本拆分文件

时间:2013-11-05 14:12:49

标签: python text split

我的文件结构如下:

Title = "test.txt"  
variables = x,y,z  
zone height=100m  
x1, y1, z1  
...   
xn, yn, zn  
zone height=020m  
x1, y1, z1  
...  
xn, yn, zn  

需要将其拆分为多个文件,从zone height = xxx行开始。这些输出文件的名称应为outfile_xxx.txt,其中xxx是高度值。

并不总是只有高度可以运行,所以它需要能够根据数量编写任意数量的输出文件

我一直在尝试下面和现在,它几乎按计划工作。我宁愿不写标题的占位符文件,但想不出跳过标题行的最简单方法

inp=open(inputfilename)
out=open('zplane_placeholder_for_header.dat','w')

for line in inp:
      if line.startswith("zone"):
        height=line[8:11]
        out.close()
        out=open('zplane'+str(height)+'.dat','w')
      else:
        out.write(line)
out.close()

1 个答案:

答案 0 :(得分:0)

我已设法通过以下方式让我为此工作。

with open (inputfilename) as f:
    next(f)
    next(f)
    for line in f:
      if line.startswith("zone"):
        height=line[8:11]
        next(f)
        out=open('zplane'+str(height)+'.dat','w')
      else:
        out.write(line)
out.close()