在文本文件中排列文件
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
来实现它
我在名为 (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