2017-07-27 29 views
-3

請參閱下面的附加圖像,顯示文本文件的格式。我需要提取文件中第一行指示的數據矩陣的維數,這裏是圖像顯示的情況下的49 * 70 * 1。請注意,名稱「gd_fac」的長度可能會有所不同。我怎樣才能將這些數字提取爲整數?我正在使用Python 3.6。從文本文件的首行提取尺寸

Text file

回答

1

規格也不是很清楚。我假設你想要的信息總是在第一行,並且總是在括號內。之後:

with open(filename) as infile: 
    line = infile.readline() 
    string = line[line.find('(')+1:line.find(')')] 
    lst = string.split('x') 

這將創建清單lst = [49, 70, 1]

這裏發生的事情:。 首先,我打開該文件(你需要與你的文件的名稱,以取代filename,作爲一個字符串的with ... as ...結構,確保該文件在使用後關閉,然後我讀的第一然後,我只選擇那些在打開文件(之後和關閉文件)之前的部分。最後,我將字符串拆分爲多個部分,字符爲x作爲分隔符。包含文件第一行中的值,這些值位於括號之間,並由x間隔開。

+0

我喜歡你的解決方案。 =) – thesonyman101

+2

upvoted你的不錯的答案。如果礦場再長一點,你真的變得很好,很簡單。 – thesonyman101

0

這是幹什麼的,它查找「gd_fac 「 然後,如果它有刪除所有不需要的東西,並取而代之只是你想要的。

with open('test.txt', 'r') as infile: 
     for line in infile: 
      if("gd_fac" in line): 
       line = line.replace("gd_fac", "") 
       line = line.replace("x", "*") 
       line = line.replace("(","") 
       line = line.replace(")","") 
       print (line) 
       break 

OUTPUT: 「49x70x1」

0

既然你提到 'gd_fac' 麪包車是長度是可變的,最好的解決方案將使用正則表達式。

import re 
with open("a.txt") as fh: 
    for line in fh: 
     if '(' in line and ')' in line: 
      dimension = re.findall(r'.*\((.*)\)',line)[0] 
      break 
print dimension 

輸出:

'49x70x1'