これは本当に奇妙です。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
私が望むのは、次のように、各行の 2 番目のコロンの右側にある数値を取得し、それらを数値ごとに 1 行ずつ別のファイルに入れることです。
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
記録のために、コンソールに行を出力するようにスクリプトを変更しましたが、問題なく実行されました。問題は、これらの行をファイルに書き込むことにあるようです。どんな助けでも大歓迎です。