2016-11-07 59 views
0

我想在Python中读取文本文件。如下图所示的文件有数据:读取文本文件并提取数据

O04444 
(T2 D=12.7 CR=0. - ZMIN=-11.5 - flat end mill) 
(T3 D=4.978 CR=0. TAPER=118deg - ZMIN=-22. - drill) 
N10 G90 G94 G17 
N15 G21 
N20 G53 G0 Z0. 

(Face2) 
N30 T2 M6 
N35 S1380 M3 
N40 G54 
N45 M8 
N60 G0 X108.255 Y-46.214 
N65 G43 Z15. H2 
N70 T3 
N75 G0 Z5. 
N80 G1 Z-0.73 F355.6 
N85 G18 G3 X106.985 Z-2. I-1.27 K0. 
N90 G1 X100. 
N95 X0. 
N100 G17 G2 Y-36.199 I0. J5.008 
N105 G1 X100. 
N110 G3 Y-26.184 I0. J5.008 
N115 G1 X0. 
N120 G2 Y-16.168 I0. J5.008 
N125 G1 X100. 
N130 G3 Y-6.153 I0. J5.008 
N135 G1 X0. 
N140 G18 G3 X-1.27 Z-0.73 I0. K1.27 
N145 G0 Z15. 
N150 M5 
N155 G53 G0 Z0. 

(Drill3) 
N165 M9 
N170 M1 
N175 T3 M6 
N180 S5850 M3 
N185 G54 
N190 M8 
N200 G17 
N205 G0 X80. Y-40. 
N210 G43 Z15. H3 
N215 T2 
N225 G0 Z5. 
N230 G98 G81 X80. Y-40. Z-22. R3. F584.2 
N235 Y-25. 
N240 Y-10. 
N245 G80 
N250 G0 Z15. 
N255 M5 
N260 G53 G0 Z0. 

(2D Pocket1) 
N270 M9 
N275 M1 
N280 T2 M6 
N285 S1380 M3 
N290 G54 
N295 M8 
N310 G0 X47.315 Y7.644 
N315 G43 Z15. H2 

我想将这个文件分成4个不同的文件。只要中间有一条空行,它应该分开。我是python的新手。任何帮助将不胜感激。

+0

如何逐行读取文件并在读取空行后更改输出文件?请显示你已经尝试过... –

回答

0

问题很简单。您可以只需要一个计数器,可以继续遍历文件中的每一行。

i = 0 
for line in open("somefile", "r"): 
    if len(line.strip()) == 0: 
     continue 
    with open("new_file{}".format(i), "w") as new_file: 
     new_file.write(line) 
    i += 1 

如果你想使用的语言的一些更高级的功能,你可以将使用LOC和摆脱难看的if/else语句

lines = open("somefile", "r").readlines() 
non_empty = [line for line in lines if len(line.strip()) != 0] 
for i, line in enumerate(non_empty): 
    with open("new file{}".format(i), "w") as new_file: 
     new_file.write(line) 
0

您可以使用再立即分裂:

import re 
for x in re.split('\n\n',open('bla.txt').read()): 
    open(x.split("\n")[0].strip('()').replace(" ","_"),'w').write(x) 

x.split部分是根据头文件确定文件名,你可以改变它。