这真的很奇怪.我有一个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
Run Code Online (Sandbox Code Playgroud)
数字本身的含义并不重要(如果有人好奇,那就是WEKA输出).我想要的是将每行第二个冒号右侧的数字放入一个单独的文件中classes.txt,每个数字一行,如下所示:
1
1
1
2
1
.
.
.
Run Code Online (Sandbox Code Playgroud)
我编写了以下Python脚本来完成此任务:
initial = open('temp.txt')
final = open('classes.txt','w')
for line in initial:
final.write(list(line.rsplit(':',1)[1])[0]+'\n')
Run Code Online (Sandbox Code Playgroud)
它适用于前5462线,但没有明显的理由它停在那里.其余1131行(5463 - 6593)的数字不存在classes.txt.我将跳过的行复制并粘贴到一个单独的txt文件中,然后在THAT文件上运行脚本,但结果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
Run Code Online (Sandbox Code Playgroud)
为了记录,我改变了脚本以将行打印到控制台,它做得很好.问题似乎是将这些行写入文件.任何帮助将不胜感激.
我发现了发生了什么!我仍然不能100%确定为什么这个问题解决了(以及为什么问题专门出现在第5462行)但我添加final.close()到脚本的末尾然后它完美地写了所有6593个数字.奇怪.
| 归档时间: |
|
| 查看次数: |
4140 次 |
| 最近记录: |