次のコードを教えてください。
#! /usr/bin/env python
stop = "0"
while(stop == "0"):
infile = open(raw_input("Enter input filename: "), 'r')
outfile = open(raw_input("Enter output filename: "), 'w')
err = raw_input("Give max intensity: ")
outfile.write("#" + "\n")
for line in infile.readlines()[1:]:
line = line.strip()
line_col = line.split()
if line_col[3] <= err:
outfile.write(line + "\n")
else:
del line
stop = raw_input("Would like to quit the program? Yes = 1 No = 0: ")
infile.close()
outfile.close()
ここでの考え方は、5 列のデータを持つファイルを読み取ることです。ファイルの 4 列目の数値が 'err' よりも大きい場合、ユーザーに数値 (err) の入力を求めた後、データ行を削除するために使用されます。
問題は、何らかの理由で該当するすべての行が削除されないことです。err = 500 の場合、500 を超える 3 桁の数字 (例: 653.61511、989.76770、614.62500 など) はすべて削除されますが、4 桁の数字 (例: 1001.15637、1628.09155、2444.60400 など) は削除されません!
私が作業しているファイルは以下のとおりです。
-8.0 4.0 3.695 265.81021 265.8102
-8.0 4.0 3.721 274.50510 274.5051
-8.0 4.0 3.746 285.87451 285.8745
-8.0 4.0 3.771 301.65869 301.6587 -8.0 4.0 3.796
324.28391 324.2839 -8.0
4.0 3.821 356.89609 356.8961
-8.0 4.0 3.846 405.96741 405.9674
-8.0 4.0 3.872 488.77600 488.7760
-8.0 4.0 3.897 653.61511 653.6151
-8.0 4.0 3.922 1001.15637 1001.1564
-8.0 4.0 3.947 1628.09155 1628.0916 -8.0 4.0 3.972 2444.60400 2444.6040
-8.0 4.0 4.023
3092.76880 3092.7688
-8.0 4.0 4.048 2488.82031 2488.8203
-8.0 4.0 4.073 1653.13733 1653.1373
-8.0 4.0 4.098 989.76770 989.7677
-8.0 4.0 4.123 614.62500 614.6250
私は決してPythonでのコーディングの専門家ではないので、この問題に関する助けをいただければ幸いです...