Python 读取多行并将它们写入 ASCII 文件中的一行

Python read multiple rows and write them into one row in ASCII file

我正在尝试读取几行(行)并将它们作为行写入另一个文件,其中每行包含读取文件的 4 行。 这是我正在尝试做的事情,不幸的是没有成功:

读取文件:

2623    831     6892    0
2353    1803    3425    0
1910    1823    3810    0
1637    1287    2811    0
2803    546     6609    0
1591    2157    2367    0
2167    1906    2665    0
3192    2168    8362    0
3903    1465    2011    0
2355    1801    2004    0
2390    796     5055    0
1703    1044    3441    0
1886    1328    2731    0
1496    1277    3074    0
1827    460     5992    0
1945    1785    2065    0
1983    1963    2818    0
1532    2229    6936    0
2449    5972    1918    0
2699    2007    1581    0

想要写入的文件:

2623    831     6892    0 2353  1803    3425    0 1910  1823    3810    0 1637  1287    2811    0 
2803    546     6609    0 1591  2157    2367    0 2167  1906    2665    0 3192  2168    8362    0
3903    1465    2011    0 2355  1801    2004    0 2390  796     5055    0 1703  1044    3441    0
1886    1328    2731    0 1496  1277    3074    0 1827  460     5992    0 1945  1785    2065    0
1983    1963    2818    0 1532  2229    6936    0 2449  5972    1918    0 2699  2007    1581    0

到目前为止我的脚本:

import itertools
from itertools import product
# sample data
name = ["File_A"]
k = 0
#
for j in name:
    print 'name =',j
    k = k+1
    f1 = open("{j}.txt".format(j=j))
    f2 = open("{j}_{k}.txt".format(j=j,k=k),"w")
       #f2.write('SF1' + '  ' + 'SF1' + '  ' + '\n')
    for i, line in enumerate(f1):
        print(repr(line))
        #f2.write(line + ' ')
        f2.writelines(itertools.islice(f1, 0, None, None))
        if i == 4:
           f2.write(line + '\n')
           i = 0
       #    f2.writelines(itertools.islice(f1, 4, None))
    #with open('VY_{k}'.format(k=k), 'a') as f1:
    #lines = f1.readlines()
    f2.close()
    f1.close()

我读过 productpanda,但我什么都没做。

您不需要 itertools。您只需:

name = ["File_A"]
k = 0
#
for j in name:
    print('name =',j)
    k = k+1
    f1 = open("{j}.txt".format(j=j))
    f2 = open("{j}_{k}.txt".format(j=j,k=k),"w")
    i = 0 
    for line in f1:
        i += 1
        f2.write(line.rstrip()+' ')
        if i % 4 == 0:
           f2.write('\n')
    f2.close()
    f1.close()

它读取每一行,去掉末尾的换行符并将其写入新文件,每 4 行再次添加换行符。