2016-11-02 30 views
-4

我有数据的格式如下:需要帮助解析数据

13 {114800000,117800000} {114700000} 0.00433424757229875 0.999888367939272 224.821380176483 
3 {117800000} {114700000} 0.00433666704733074 0.999776885319054 224.796313701717 
5 {114800000} {114700000} 0.00444505952876369 0.999564744287269 224.748614537403 
6 {114700000} {114800000} 0.00444505952876369 0.999455989554999 224.748614537403 
14 {114700000,117800000} {114800000} 0.00433424757229875 0.99944208881946 224.745488665843 

,我期待使用猪/蟒蛇/ shell脚本在这种格式的结果。 任何人都可以帮助我吗?

13 114800000 117800000 114700000 0.004334248 0.999888368 224.8213802 
3 117800000 null  114700000 0.004336667 0.999776885 224.7963137 
5 114800000 null  114700000 0.00444506 0.999564744 224.7486145 
6 114700000 null  114800000 0.00444506 0.99945599 224.7486145 
14 114700000 117800000 114800000 0.004334248 0.999442089 224.7454887 
+1

你做了什么? – nook

+1

请显示所进行的研究的证据,您已实施的代码以及您遇到的具体问题......请回顾[如何提问](http://stackoverflow.com/help/how-to-ask)和考虑提供[最小,完整和可验证示例](http://stackoverflow.com/help/mcve) – David

+0

我使用此代码 max2 = 0 file.each {line fields = line.split(“”如果长度(子字段)> max2:max = length(子字段) } #max = 字段[2-1]删除“{}” 子字段=字段[2-1] .split(“,”) # =第二栏中的列数 file.each {line fields = line.split(“”) 字段[2-1]删除“{}” subfields = fields [2-1] .split(“,”) exsubfields = ['null'为范围内的x(0,max2)] for ndx in length (子字段): exsubfields [NDX] =子域[NDX] 领域[2-1] = exsubfields 压扁 如果长度(子域)> MAX2:最大长度=(子域) } – Neena

回答

1

您可以尝试一个简单的拆分。让我们假设你有名为input.txt

import re 
fd = open("input.txt", "r") 
output = [] 
for line in fd: 
    l = re.findall(r"[\w']+", line) 
    if len(line) < 7: 
     l.insert(2, "null") 
    output.append(l) 

我假设有在每一行,并在一些缺少的是在第三列7号文件中的信息。

这应该工作。

+0

谢谢你的帮助 – Neena