2015-06-08 32 views
-1

当我试图从final_header_update'''分裂,并获得数组的第一个元素,我没有得到我所需要的。 Final_header_update的如何解决python中的分裂问题?

import time 
with open("master.txt", "r") as data1: 
    master = data1.read().rstrip().split("\n") 
with open("Security_Headers_list.txt", "r") as data2: 
    for line in data2: 
     num, cat = line.rstrip().split(",", 1) 
     headers=num +','+','.join('1' if t in cat else '0' for t in master) 
     useragent_id=str(1) 
     date=time.strftime("%d/%m/%Y") 
     final_header_update=headers+","+date+","+useragent_id 
     print final_header_update 
     for db_update in final_header_update: 
      a=db_update.split(",") 
      print a[0] 

输出是:

1006,1,1,1,1,1,1,08/06/2015,1 

我得到的输出:

1 
0 
0 
6 

1 

1 

1 

1 

1 

1 

0 
8 
/
0 
6 
/
2 
0 
1 
5 

1 

,而不仅仅是ID:1006

+0

'final_header_update'是一个字符串,你ITER过的最后一个循环 – Hacketo

+0

如果你只想打印第一场的所有字符,为什么你解析所有其他的领域? –

回答

2

你得到这个,因为你遍历final_header_update

for db_update in final_header_update: 

这个for循环将导致遍历final_header_update中的每个字符,这是我们不想要的。

要获得更清晰的画面让我们考虑

>>> final_header_update = "1006,1,1,1,1,1,1,08/06/2015,1" 
>>> for db_update in final_header_update: 
...  print db_update 
... 
1 
0 
0 
6 
, 
# And so on 

解决方案

相反,你可以写(即摆脱for循环本身)

print final_header_update 
a = final_header_update.split(',') 
print a[0] 
# Will give the output 
# 1006 
+0

非常感谢! – Arun

+0

@阿伦你总是欢迎:) – nu11p01n73R

1

的问题出在for db_update in final_header_update:

相反,直接做:

a=final_header_update.split(",") 
print a[0]