0

我正在尝试读取几行(行)并将它们作为行写入另一个文件,其中每行包含读取文件的 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()

我已经阅读了有关产品和熊猫的信息,但我已经管理过任何事情。任何帮助表示赞赏。

4

1 回答 1

1

你不需要 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 行再次添加换行符。

于 2020-08-03T07:04:37.360 回答