2016-12-12 59 views
0

私はテキストファイルからデータを抽出し、データをプロットし分析するために、それらが表す値によって列が整理された2D配列に配置しようとしています。 42:テキストファイル内のデータはPythonの2D配列へのテキストファイルの読み込み

10.24284 49.89447 462.90 312.4水2016年12月7日6のようにフォーマットされる10P EST

Iは、その中に各列の値を分離することができるようにします独自のリストまたは完全な2D配列。私はと同様にreadlinesを探してみましたが、何らかの方法でソートされていない数字の混乱を返します。問題の最良の解決策は何ですか?

+0

入力ファイルは適切に構造化されていますか?入力ファイルにCSV形式を使用すると、各入力行の列を簡単に抽出できます。 –

+0

各行を分割し、それらの配列を配列=> 2次元配列に格納しますか? – qxz

答えて

0

数字部分は自明である...

result = [map(float, L.split()[:4]) for L in open("datafile.txt")] 

result[43][2]は、(式中、Rは読み取り手段)open('filename', 'r')を使用して44行目の3番目の数字(Pythonで0から開始カウント)

1

あろう単純なforループを使用して、コード内のすべての行をループすることができます。このような何か:

with open('filename', 'r') as inputfile: 
    for line in inputfile: 
     #do something with the string 

あなたが持っていたデータは、次のようにフォーマットされたことを言った:

10.24284 49.89447 462.90 312.4水曜日2016年12月7日6:42:10P EST

あなたはそれぞれの行を次のようにすべてのスペースに分割することができます:

line.split(" ") 

あなたはあなたは、あなたがこのようにそれを分割するどのように多くの時間を制限することができ、最終的な配列で一緒に日付を維持したい場合

['10.24284', '49.89447', '462.90', '312.4', 'Wed', 'Dec', '7,', '2016', '6:42:10p', 'EST'] 

line.split(" ", 4) 

これはあなたを与えるだろう:

を今のようなものを持っているウルド
['10.24284', '49.89447', '462.90', '312.4', 'Wed Dec 7, 2016 6:42:10p EST'] 
関連する問題