2014-12-03 97 views
1

我想弄清楚我如何檢查包含C條目的R行的表的維數。檢查表的尺寸

示例模式文件Pattern file.txt包含有效模式。

10 10 50 

     red  blue  red  blue  red  blue  red  blue  red  blue 
     blue  red  blue  red  blue  red  blue  red  blue  red 
     red  blue  red  blue  red  blue  red  blue  red  blue 
     blue  red  blue  red  blue  red  blue  red  blue  red 
     red  blue  red  blue  red  blue  red  blue  red  blue 
     blue  red  blue  red  blue  red  blue  red  blue  red 
     red  blue  red  blue  red  blue  red  blue  red  blue 
     blue  red  blue  red  blue  red  blue  red  blue  red 
     red  blue  red  blue  red  blue  red  blue  red  blue 
     blue  red  blue  red  blue  red  blue  red  blue  red 
  • 第一行包含三個整數,RC,並T,表示行數,列數,和平鋪尺寸。
  • 文件中有R行。
  • 有每行中列出C顏色,用空格
+1

tile.txt中的平鋪尺寸是什麼意思? – igon 2014-12-03 15:51:38

+0

這是一個項目。瓷磚用於繪製瓷磚,但可以忽略,因爲它不用於表012的尺寸 – lindsay 2014-12-03 15:52:52

+0

所以這是什麼問題?這些表的尺寸是'R'和'C' – Elisha 2014-12-03 15:57:03

回答

0

因此,尋找有多少行的文件中分離出來是很容易:

f = open('somefile.txt') 
lines = f.readlines() 
f.close() 

print len(lines) 

減去你的情況

第一線

現在,如果你想找到有多少行,你可以循環通過 行並計算空格的數量並從總數中減去,或者在這種情況下,我認爲空格的數量應該等於單詞的數量。

count = 0 
for x in lines[0]: 
    if(x == ' '): 
    count+=1 
print count 

另外要注意:

,如果你沒有一個文件的一個完美的正方形,並且希望再以數每行你必須做它像這樣:

count = 0 
for x in lines: 
    for y in x: 
    if(x == ' ') 
     count+=1 
    print count 
    count = 0 
+0

以及如何計算行數? – lindsay 2014-12-03 16:06:57

+0

第一個代碼區。我在我的第一個'print len(lines)'中說 - ''lines'是一個數組,每個元素都是一行。如果你喜歡,請不要忘記勾選標記(正確的在我的文章旁邊的向下箭頭下)答案 – Jay 2014-12-03 16:09:27

+0

我可以通過電子郵件向我發送有關其他問題的電子郵件嗎?這是一個項目。我是一個科學專業 – lindsay 2014-12-03 16:14:19

0

您可以使用第一行值作爲參考來檢查表格是否具有正確的尺寸。

with open('file.txt') as f: 
    file = f.readlines() 

for line in file: 
    if line == file[0]: 
     first_line = line.split() 
     rows_nbr = int(first_line[0]) 
     columns_nbr = int(first_line[1]) 
     if len(file) - 2 != columns_nbr: # -2 here to skip the first two lines of the file 
      print 'Incorrect column number !' 
      break 
    elif line == file[1]: 
     continue 
    else: 
     current = line.split() 
     if len(current) != rows_nbr: 
      print 'Incorrect row number !' 
      break