2016-10-19 400 views
1

我有一個包含3列和20000行的文本文件。 我想知道我應該如何獲得第1000行和第2列中的特定數據(例如)? 我的第一列的格式如下AAAA和我的第二列是一個數字,如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

你怎麼在一個文本文件中「行」指的第3行? – Raza

+0

這是否意味着你的第一行是字母表,第二行是數字?每行是否包含3行? – Raza

+0

你的意思是「列」而不是「行」在這裏? – roganjosh

回答

2

您正在嘗試的東西,包含字母使用float()。出現這種情況,當你調用:

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

您的需要告訴我們您正在尋找精確的輸出,但這裏是一個可能的解決方案

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

or better yet 

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

這隻會讓你在中間一欄,我如果你需要整行或者沒有,那麼我不確定。

此外,如下所述,您需要更改===在你的if語句。 =用於分配,==用於比較。

+0

非常感謝你。 –

0

使「=」爲「==」你的代碼

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

相關問題