如何将文本行转换为列?

时间:2016-07-21 13:19:25

标签: python

这可能是非常简单的事情,但我是Python的全新,很抱歉。 cas是我有很多包含这种文本的文件:

name1
[1.0 2.0 3.0],[1.1 2.1 3.1]

(目录/data/text1/1.txt)

另一个文件例如包含

name2
[4.0 5.0 6.0],[4.1 5.1 6.1]

(目录/data/text2/2.txt)

,输出应为:

name1
1.0 1.1
2.0 2.1
3.0 3.1
name2
4.0 4.1
5.0 5.1
6.0 6.1

最好的方法是什么?

我试着编写代码:

with open('1.txt','r+') as f:
    for line in f:
        a = line.split(',', 1)
        new_line = line[0] + '\n' + line[1]
        f.write(new_line)

(这可能真的很愚蠢。)

Ex。:(它只有两行)

sm_CCC1OCO1

[ 71.54252843  52.88596242  51.64903087],[ 62.07181336  44.1827499   42.9019055 ]

1 个答案:

答案 0 :(得分:1)

您可以zipre来解决您的问题。 以下是代码:

>>> import re, os
>>> for file in os.listdir("directory"):
>>>     with open(file) as fp:
>>>         for line in fp.readlines():
>>>            lists = [re.findall("\d+\.\d+",l) for l in line.split(',')]
>>>            for a,b in zip(lists[0],lists[1]):
>>>                 print a, b

对于包含内容的文件:

[1.0 2.0 3.0],[1.1 2.1 3.1] 

输出:

1.0 1.1
2.0 2.1
3.0 3.1

希望这是你所期望的。

相关问题