这真的很奇怪。我有一个temp.txt
具有以下格式的文件:
1 1:1 1:1 *0.9 0 0 0.1 0 0
2 1:1 1:1 *1 0 0 0 0 0
3 1:1 1:1 *1 0 0 0 0 0
4 1:1 2:2 + 0.2 *0.7 0.1 0 0 0
5 1:1 1:1 *1 0 0 0 0 0
6 1:1 1:1 *0.9 0 0 0.1 0 0
7 1:1 1:1 *1 0 0 0 0 0
8 1:1 1:1 *1 0 0 0 0 0
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
6593 1:1 1:1 *1 0 0 0 0 0
数字本身的含义并不重要(如果有人好奇,这是 WEKA 输出)。我想要的是每行第二个冒号右边的数字,并将它们放入一个单独的文件classes.txt
中,每个数字一行,如下所示:
1
1
1
2
1
.
.
.
我编写了以下 Python 脚本来完成此操作:
initial = open('temp.txt')
final = open('classes.txt','w')
for line in initial:
final.write(list(line.rsplit(':',1)[1])[0]+'\n')
它适用于前 5462 行,但没有明显的原因它停在那里。其余 1131 行 (5463 - 6593) 中的数字不在classes.txt
. 我将跳过的行复制并粘贴到一个单独的 txt 文件中,并在该文件上运行脚本,但结果classes.txt
为空。
这个问题真的难倒我,因为我看不到第 5462 行和第 5463 行之间没有明显区别,如下所示:
5461 1:1 1:1 *1 0 0 0 0 0
5462 1:1 1:1 *1 0 0 0 0 0
5463 1:1 4:4 + 0.3 0 0 *0.6 0.1 0
5464 1:1 1:1 *0.8 0 0 0.2 0 0
作为记录,我更改了脚本以将这些行打印到控制台,它做得很好。问题似乎在于将这些行写入文件。任何帮助将不胜感激。