python提取数据列并将它们并排放置

2024-10-01 11:39:38 发布

您现在位置:Python中文网/ 问答频道 /正文

早上好,我是python的新用户,对MATLAB有一些经验。为了练习,我想写一个脚本,在工作中也会对我有所帮助。我有一个大文件,我想提取一些列,并排放置(列的长度都相同)。 所以,我从这样的情况开始 :

                            Great amount of text and numbers
                           1         2         3         4         5
                           O         O         O         O         O
      SpecialText --       text      text      text      text      text
       1 1   A  1A         col1      col2      col3      col4      col5
       2        2A         col1      col2      col3      col4      col5
       3        2BX        col1      col2      col3      col4      col5
       4        2BY        col1      col2      col3      col4      col5
       5        2BZ        col1      col2      col3      col4      col5
       6 2   B  3A         col1      col2      col3      col4      col5
       7        3AX        col1      col2      col3      col4      col5
       8        3AY        col1      col2      col3      col4      col5

                           6         7         8         9         10
                           O         O         O         O         O
     SpecialText --        text      text      text      text      text
       1 1   A  1A         col6      col7      col8      col9      col10
       2        2A         col6      col7      col8      col9      col10
       3        2BX        col6      col7      col8      col9      col10
       4        2BY        col6      col7      col8      col9      col10
       5        2BZ        col6      col7      col8      col9      col10
       6 2   B  3A         col6      col7      col8      col9      col10
       7        3AX        col6      col7      col8      col9      col10
       8        3AY        col6      col7      col8      col9      col10

我想得到类似的东西:

col1 col2 col3 col4 col5 col6 col7 ...
col1 col2 col3 col4 col5 col6 col7 ...
col1 col2 col3 col4 col5 col6 col7 ...
col1 col2 col3 col4 col5 col6 col7 ...
...  ...  ...  ...  ...  ...  ...  ...  

我的问题很简单。这对初学者来说可行吗?有没有我可以用来简化这项工作的库? 对不起,我没有经验,提前谢谢你

编辑:起始文件是一个.txt文件
编辑2:为了清晰起见,修改了起始文件


Tags: 文件text编辑经验col2col3col1col4
1条回答
网友
1楼 · 发布于 2024-10-01 11:39:38

请使用下面的程序

import re
result={}
with open("input.txt","r") as f:
    insidedatablock=False
    line=f.readline()
    while line!='':
        if line.strip().startswith("SpecialText"):
            insidedatablock=True
        if line.strip()=='':
            insidedatablock=False
        if insidedatablock==True:
            cols=re.split("\s+",line.strip())
            if cols[0].isdigit() and len(cols)>=7:
                if cols[0] in result:
                    result[cols[0]]+=cols[-5:]
                else:
                    result[cols[0]]=cols[-5:]
        line=f.readline()
for i in result:
    print(" ".join(result[i]))

这将使用给定的txt文件打印以下内容

col1 col2 col3 col4 col5 col6 col7 col8 col9 col10
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10

相关问题 更多 >