感谢您花时间阅读它。
我喜欢python,因为它更简单,更快,但今天我遇到问题“frezze”。
我有一个这样的文件(标题会有变化,它不是常数):
2014 10 1 0608 36.3 L -17.381 -67.477 15.0F OSC 1939.1 4.3LOSC 5.4WOSC 1
SPEC LPAZBH Z MO 17.7 ST 1.8 OM 6.26 f00.138 R 10.48 AL 1.50 WI 14.6 MW 5.7 3
SPEC LPAZBH Z T 6 852 K 0.000 GD 140 VS 3.90 DE 2.90 Q0 0.0 QA 0.00 VS 3.90 3
SPEC BB05HH N MO 0.0 ST0.000 OM 13.8 f0 15.2 R0.0778 AL 2.47 WI 9.4 MW 0.0 3
SPEC BB05HH N T 6 846 K 0.000 GD 0 VS 3.20 DE 2.60 Q0 0.0 QA 0.00 VS 3.20 3
SPEC BBOJSH Z MO 17.7 ST0.027 OM 5.76 f00.058 R 43.15 AL 2.94 WI 34.3 MW 5.7 3
SPEC BBOJSH Z T 6 827 K 0.000 GD 89 VP 6.80 DE 2.90 Q0 0.0 QA 0.00 VS 3.90 3
SPEC BBOBSH Z MO 0.0 ST0.000 OM 4.09 f0 1.56 R0.7576 AL 1.53 WI356.7 MW 0.0 3
SPEC BBOBSH Z T 6 821 K 0.000 GD 0 VP 5.80 DE 2.60 Q0 0.0 QA 0.00 VS 3.20 3
SPEC AVERAGE MO 17.2 ST 92.7 OM 5.7 f00.224 R9.0633 AL 0.00 WI 20.0 MW 5.4 3
SPEC SD MO 7.4 ST 91.0 OM 2.6 f00.231 R5.5382 AL WI MW 2.4 3
GAP= 89 71.49 160.1 254.8 0.0 0.1224E+05 0.0000E+00 0.0000E+00E
SPEC BBOESH Z MO 17.5 ST0.834 OM 6.4 f00.116 R 11.51 AL-0.00 WI 20.0 MW 5.6 3
SPEC BBOESH Z T 6 836 K 0.020 GD 84.1 VS 3.61 DE 2.78 Q0400.0 QA 0.70 VS 3.61 3
SPEC BBOJSH Z MO 17.8 ST0.855 OM 6.7 f00.091 R 14.68 AL-0.00 WI 20.0 MW 5.8 3
SPEC BBOJSH Z T 6 844 K 0.020 GD 89.6 VS 3.61 DE 2.78 Q0400.0 QA 0.70 VS 3.61 3
SPEC LPAZSH Z MO 16.0 ST 11.4 OM 4.7 f00.860 R1.5531 AL-0.00 WI 20.0 MW 4.6 3
SPEC LPAZSH Z T 6 846 K 0.020 GD 140 VS 3.61 DE 2.78 Q0400.0 QA 0.70 VS 3.61 3
SPEC BBODSH Z MO 18.0 ST 1.4 OM 6.7 f00.091 R 14.68 AL-0.00 WI 20.0 MW 5.9 3
SPEC BBODSH Z T 6 857 K 0.020 GD 145 VS 3.61 DE 2.78 Q0400.0 QA 0.70 VS 3.61 3
SPEC BBOBSH Z MO 17.1 ST 4.6 OM 5.8 f00.266 R5.0214 AL-0.00 WI 20.0 MW 5.4 3
SPEC BBOBSH Z T 6 850 K 0.020 GD 154 VS 3.61 DE 2.78 Q0400.0 QA 0.70 VS 3.61 3
SPECMNMCXBH Z MO 15.8 ST0.565 OM 4.10 f00.386 R3.7387 AL 2.64 WI 26.0 MW 4.5 3
SPECMNMCXBH Z T 610 2 K 0.000 GD 296 VS 3.90 DE 2.90 Q0 0.0 QA 0.00 VS 3.90 3
SPEC PB11BH Z MO 16.4 ST0.095 OM 4.7 f00.129 R 10.35 AL-0.00 WI 20.0 MW 4.9 3
SPEC PB11BH Z T 61013 K 0.020 GD 350 VS 3.61 DE 2.78 Q0400.0 QA 0.70 VS 3.61 3
SPEC PB08BH Z MO 16.0 ST0.074 OM 4.3 f00.161 R8.2963 AL-0.00 WI 20.0 MW 4.6 3
SPEC PB08BH Z T 61026 K 0.020 GD 353 VS 3.61 DE 2.78 Q0400.0 QA 0.70 VS 3.61 3
SPECPSGCXBH Z MO 15.6 ST 0.1 OM 4.2 f00.254 R 5.26 AL-0.00 WI 20.0 MW 4.3 3
SPECPSGCXBH Z T 61013 K 0.020 GD192.6 VS 3.61 DE 2.78 Q0400.0 QA 0.70 VS 3.61 3
SPEC PB01BH Z MO 15.9 ST0.083 OM 4.1 f00.179 R7.4620 AL-0.00 WI 20.0 MW 4.5 3
SPEC PB01BH Z T 61040 K 0.020 GD 457 VS 3.61 DE 2.78 Q0400.0 QA 0.70 VS 3.61 3
SPEC PB09BH Z MO 16.9 ST0.110 OM 5.0 f00.094 R 14.21 AL-0.00 WI 20.0 MW 5.2 3
SPEC PB09BH Z T 61121 K 0.020 GD 523 VS 3.61 DE 2.78 Q0400.0 QA 0.70 VS 3.61 3
SPEC PB06BH Z MO 16.0 ST0.115 OM 4.1 f00.179 R7.4620 AL-0.00 WI 20.0 MW 4.6 3
SPEC PB06BH Z T 61118 K 0.020 GD 629 VS 3.61 DE 2.78 Q0400.0 QA 0.70 VS 3.61 3
SPEC SIV SH Z MO 22.2 ST999.9 OM 10.2 f00.299 R4.4672 AL-0.00 WI 20.0 MW 8.7 3
SPEC SIV SH Z T 61113 K 0.020 GD 700 VS 3.61 DE 2.78 Q0400.0 QA 0.70 VS 3.61 3
31.0 3.0 137.0 3.0 10.0 2.0 0.2 0.3
FPFIT F
2014-10-01-0606-41S.NSN___070 6
OLDACT:UP 14-10-10 15:15 OP:yo STATUS: ID:20141001060641 3
OLDACT:ARG 14-10-10 14:56 OP:yo STATUS: ID:20141001060641 3
ACTION:UP 14-10-10 15:43 OP:yo STATUS: ID:20141001060641 I
OLDACT:UP 14-10-10 15:28 OP:yo STATUS: ID:20141001060641 3
STAT SP IPHASW D HRMM SECON CODA AMPLIT PERI AZIMU VELO AIN AR TRES W DIS CAZ7
PB11 BZ IP D 6 9 31.76 62 -0.4810 350 221
PB11 SZ IAML 610 18.65 486.2 1.70 350 221
PB08 BZ IP C 6 9 39.09 62 6.2310 353 210
PB08 SZ IAML 610 30.80 232.5 1.80 353 210
PSGCX BZ IP D 6 9 31.60 62 -3.9110 372 228
PSGCX SZ IAML 610 55.47 317.5 2.50 372 228
PB01 BZ IP D 6 9 46.54 62 -1.70 9 457 207
PB01 SZ IAML 611 7.26 160.1 3.10 457 207
MOCB SZ IP C 6 9 48.34 62 -2.06 9 470 156
PB09 BZ IP C 610 9.79 62 11.72 9 523 200
PB09 SZ IAML 611 51.60 478.4 3.00 523 200
YJA EZ IP C 6 9 59.20 62 -5.99 9 569 159
PB06 BZ IP D 610 8.40 62 -5.52 9 629 200
标题将一直到
STAT SP IPHASW D HRMM SECON CODA AMPLIT PERI AZIMU VELO AIN AR TRES W DIS CAZ7
此行之后数据现在存在,我的意思是
PB11 BZ IP D 6 9 31.76 62 -0.4810 350 221
是数据。
我有一些想法可以跳过此标题并保留数据
向Marcin致意(如何查找特定单词的哪一行。[python])我foud计算行直到单词“STAT SP”
with open(texto,'r') as f:
lines=f.readlines().split(\t)
word='STAT SP'
stat=[]
ain=[]
dista=[]
for i,line in enumerate(lines):
if word in line: # or word in line.split() to search for full words
leo2=csv.reader(line, delimiter=' ')
for xx in leo2:
dista.append(xx[0])
BUt id不起作用,它只是给出:
['', 'S', 'T', 'A', 'T', '', 'S', 'P', '', 'I', 'P', 'H', 'A', 'S', 'W', '', 'D', '', 'H', 'R', 'M', 'M', '', 'S', 'E', 'C', 'O', 'N', '', 'C', 'O', 'D', 'A', '', 'A', 'M', 'P', 'L', 'I', 'T', '', 'P', 'E', 'R', 'I', '', 'A', 'Z', 'I', 'M', 'U', '', 'V', 'E', 'L', 'O', '', 'A', 'I', 'N', '', 'A', 'R', '', 'T', 'R', 'E', 'S', '', 'W', '', '', 'D', 'I', 'S', '', 'C', 'A', 'Z', '7']
你能给我一些提示或修改代码来获取
STAT = [ 'PB11', 'PB09' ....] AIN = [ '62', '62' ...]
棘手的问题在于变量标题,有时候是3行,或者像这样的1或45。
非常感谢您的时间。
最好的问候。
Tonino
答案 0 :(得分:0)
感谢您澄清标头的实际外观。你的数据结构仍然不是很清楚,但我会选择:
import re
data=[]
dataNotFound=True
with open("data_f.txt") as fpntr:
for cnt,line in enumerate(fpntr):
if dataNotFound:
#to not make regex waste time after data start is found
matchObj= re.search(r'DIS\sCAZ7',line)
# \s: whitespace character as I am not sure about spaces and tabs
if matchObj:
print "match found in line {}".format(cnt)
#surely you don't need this text, but it might be of interest how long your header is.
data=data+[line.split('DIS CAZ7')[-1]]
dataNotFound=False
else:
data=data+[line]
for line in data:
print line
如果您可以澄清数据结构,我会更新/编辑/增强,但我想您可以自己调整列。
干杯