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()
我读过 product
和 panda
,但我什么都没做。
您不需要 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 行再次添加换行符。
我正在尝试读取几行(行)并将它们作为行写入另一个文件,其中每行包含读取文件的 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()
我读过 product
和 panda
,但我什么都没做。
您不需要 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 行再次添加换行符。