(file1) C 301 12.89 1.00 N 301 7.54 1.00 O 301 34.76 1.00 CD 301 8.42 1.00 CA 302 15.64 1.00 C 302 11.15 1.00 O 302 10.76 1.00
file1の0列目と1列目、1列目と2列目、2列目と3列目の間に空白を増やすために以下のスクリプトを書きました。
python
1path = 'file1' 2f = open(path).readlines() 3for line in f: 4 array1 = line[3:6] 5 array_1 = array1.rjust(3) 6 tmp = line[:3] + array_1 + line[5:] 7 fileobj = open("file2","a") 8 print >> fileobj, tmp.rstrip() 9 10path2 = 'file2' 11f2 = open(path).readlines() 12for line2 in f2: 13 array2 = line2[12:17] 14 array_2 = array2.rjust(9) 15 tmp = line2[:12] + array_2 + line2[17:] 16 fileobj = open("file3","a") 17 print >> fileobj, tmp.rstrip() 18 19 20path3 = 'file3' 21f3 = open(path).readlines() 22for line3 in f3: 23 array3 = line3[24:28] 24 array_3 = array3.rjust(6) 25 tmp = line3[:24] + array_3 + line3[28:] 26 fileobj = open("file4","a") 27 print >> fileobj, tmp.rstrip()
その結果、途中までは期待された結果が得られましたが、最後の行だけ出力されていませんでした。
(file2) C 301 12.89 1.00 N 301 7.54 1.00 O 301 34.76 1.00 CD 301 8.42 1.00 CA 302 15.64 1.00 C 302 11.15 1.00 O 302 10.76 1.00 (file3) C 301 12.89 1.00 N 301 7.54 1.00 O 301 34.76 1.00 CD 301 8.42 1.00 CA 302 15.64 1.00 C 302 11.15 1.00 O 302 10.76 1.00 (file4) C 301 12.89 1.00 N 301 7.54 1.00 O 301 34.76 1.00 CD 301 8.42 1.00 CA 302 15.64 1.00 C 302 11.15 1.00 #最後の行が出力されない
どこを変えればいいのか教えてください。
よろしくお願いします。
スクリプトが動きません。実際に実行した通りのスクリプトを提示して下さい。
line3が未定義エラーとなります。他人が検証できる最小限の実行コードを提示ください。
現象を再現できません(全行出力される)。詳細(OSや実行手順など)を追記ください。
実行の流れとしては、その他の列も同様にfor文で空白を増やしていたところ、問題が発生しました。for文1回目で1列目を編集→2回目で2列目を編集(ここまでは全行出力されていました)→3回目で3列目を編集(最後の1行がでない)という結果です。
要するに提示コードを3回そのまま実行すると現象が発生するということでよろしいでしょうか?
問題の起こらないスクリプトだけでなく、問題の起こるスクリプトも提示してください。
より実際のスクリプトに近い形で提示したので、よろしくお願いします。
path2、path3変数は使われていませんが、正しいでしょうか?
度々ですみませんが、提示されている結果とスクリプトの実行結果が異なります (file4の表示幅が違います)。**実際に実行したスクリプトと同じもの**を提示して下さい。
回答3件
あなたの回答
tips
プレビュー