在文本文件中排列文件

arranging files in a text file

我在名为 (TU_1.ST01.XXX.TXT_,TU_1.ST02.XXX.TXT_, TU_1.ST03.XXX.TXT_, .......TU_1.ST1000.XXX.TXT_) 的目录中有很多 .txt 文件。我想并排排列所有文本文件,并希望将其保存在一个文件中,该文件应该等于 shell 脚本中的 paste 命令。

谁能帮我做这个。

我试过脚本

import numpy as np
import os
import glob

for file in glob.glob("*.TXT_"):
    print(file)
    #here i want to arrange files 

示例输入文件:

$ paste *.txt
one    four    six
two    five    seven
thee           eight   
               nine

使用 pandas 是一种选择。

import pandas  as pd
from   pathlib import Path

>>> pd.DataFrame(f.read_text().splitlines() for f in Path().glob('*.txt'))
      0      1      2     3
0   one    two   thee  None
1  four   five   None  None
2   six  seven  eight  nine

然后您可以 .tranpose() / .T 将每个文件变成它自己的列。

>>> df = pd.DataFrame(f.read_text().splitlines() for f in Path().glob('*.txt'))
>>> df.T
      0     1      2
0   one  four    six
1   two  five  seven
2  thee  None  eight
3  None  None   nine

然后您可以使用 .to_csv() 并设置 sep 如果您想模拟来自 paste

的选项卡式输出
>>> print(df.T.to_csv(index=None, header=None, sep='\t'), end='')
one    four    six
two    five    seven
thee           eight   
               nine

您也可以使用 itertools.zip_longest

来实现它