これは簡単なことですが、私はPythonの新規ユーザーなので、ここで少し問題があります。ちなみに私はPython3を使用しています。
次のようなファイルが複数あります。
名前日付年齢性別の色
Name Date Age Sex Color
Ray May 25.1 M Gray
Alex Apr 22.3 F Green
Ann Jun 15.7 F Blue
(これはタブで区切られていると仮定します。実際のファイルには約3,000行と17〜18列があることを追加する必要があります)
私がやりたいのは、年齢列の値が23未満のすべての行を選択することです。
この例では、出力は次のようになります。
Name Date Age Sex Color
Alex Apr 22.3 F Green
Ann Jun 15.7 F Blue
これが私がやろうとしたことです:
f = open("addressbook1.txt",'r')
line = f.readlines()
file_data =[line.split("\t")]
f.close()
for name, date, age, sex, color in file_data:
if age in line_data < 23:
g = open("college_age.txt",'a')
g.write(line)
else:
h = open("adult_age.txt",'a')
h.write(line)
理想的には、これらの「アドレスブック」入力ファイルが20〜30個あり、このスクリプトでそれらすべてをループして、23歳未満のすべてのエントリを同じ出力ファイル(「college_age.txt」)に追加する必要があります。私は本当に他の行を保持する必要はありませんが、私はそれらを他に何をすべきかわかりませんでした。
このスクリプトを実行すると、エラーが発生します。
AttributeError: 'list' object has no attribute 'split'
次に、3行目を次のように変更します。
file_data=[line.split("\t") for line in f.readlines()]
そして、それはもはや私にエラーを与えませんが、単に何もしません。開始してから開始します。
何か助けはありますか?:)私はPythonに馬鹿げていることを忘れないでください。
実際のデータには小数があり、整数ではないことを付け加えておく必要があります。それを反映するために上記のデータを編集しました。