2016-10-19 8 views
1

I 3列と20000行を含むテキストファイルがあります。 私は、行1000と列2の特定のデータ(たとえば)を得るために何をすべきか知りたいですか? 私の最初の列は、AAAAのようにフォーマットされ、私の2番目の列は、私は、このソリューションを試してみました1234 のような数であるが、私は最後に私のデータが含まれている変数を定義したいと思い、私の最初の列であること文字 に基づいてエラーを得ています:テキストファイルの特定の列と行のデータを読み取る

with open ('my_file') as f: 
    for x , line in eumerate(f): 
     if x = 1000: 
      numfloat = map(float , line.split()) 
      print numfloat[1] 
+0

で「==」には、テキストファイルに「行」とはどういう意味ですか? – Raza

+0

これは、最初の行がアルファベットで、2番目の行が数字であることを意味しますか?各行に3行が含まれていますか? – Raza

+0

ここで「行」ではなく「列」を意味しますか? – roganjosh

答えて

2

文字を含むものにfloat()を使用しようとしています。あなたが呼ぶとき、これは起こる:

あなたはこれが唯一の私は、あなたに真ん中の列を取得する私たちにあなたが探している正確な出力を指示する必要がありますが、ここで一つの可能​​な解決策がある

num_float = map(float, line.split()[1]) 

or better yet 

num_float = float(line.split()[1]) 

numfloat = map(float , line.split()) 

行全体が必要かどうかはわかりません。以下に示すよう

また、あなたはあなたのif文で==から=を変更する必要があります。 =は対応のため、==を比較の対象とします。

+0

ありがとうございました。このコードスニペットは、[説明を含む]疑問を解決することができるが –

0

メイク「=」あなたのコードの行3

with open('my_file', 'r') as f: 
    for x, line in enumerate(f): 
     if x == 1000: 
      print float(line.split()[1]) 
0
import re 

with open('my_file', 'r') as f: 
    for x, line in enumerate(f): 
     if x == 1000: 
      array = re.split('(\d+)',line) # array=['AAAA','123'] if line='AAAA123' 
      print array[1] # your required second row. 
+1

(http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answersは)本当にあなたの投稿の品質を向上させることができます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 – andreas

関連する問題