我有一个文件“ testread.txt”,其中包含以下数据。
A
1
2
3
4
BA
5
6
7
8
CB
9
10
11
D
12
13
14
15
我想按节分别读取和提取数据并将其写入不同的文件。例如;
1
2
3
4
将其写入文件“ a.txt”
5
6
7
8
将其写入文件“ b.txt”
9
10
11
将其写入文件“ c.txt” 等等...
答案 0 :(得分:1)
可以使用以下一种(粗略的)解决方案:
collections.defaultdict
来划分和存储项目; numpy.savetxt
将其保存到文件中。Cmd+R
您会得到:
import numpy as np
from collections import defaultdict
with open('testread.txt', 'r') as f:
content = f.readlines()
d = defaultdict(list)
i = 0
for line in content:
if line == '\n':
i+=1
else:
d[i].append(line.strip())
for k,v in d.items():
np.savetxt('file{}.txt'.format(k), v[1:], delimiter=",", fmt='%s')
file0.txt
1
2
3
4
:file1.txt
5
6
7
8
:file2.txt
9
10
11
答案 1 :(得分:0)
这个想法是当有新的空行可用时跳过文件。下面的代码应该可以解决问题。
files_list = ['a.txt', 'b.txt', 'c.txt']
fpr = open('input.txt')
for f in files_list:
with open(f, 'w') as fpw:
for i, line in enumerate(fpr):
if i == 0: # skips first line
continue
if line.strip():
fpw.write(line)
else:
break