2014-12-03 65 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