title: Python: Infinite loop when testing if cell is empty
body: <p>I'm a new programmer messing around trying to make tools to make my job easier. Here is my code and the error I'm getting from it. My problem is that in the loop handling when the user inputs "empty", it doesn't stop at the soonest empty cell, but iterates to the end of the number of rows of what xlwt can handle(65536). The code is built to only handle one column on purpose.</p>
  
  <p>This is the error:</p>
  
  <pre><code>  File "sentenceconverter.py", line 114, in &lt;module&gt;
  db1.write(i,0,new_cell)
   File "C:\Python27\lib\site-packages\xlwt\Worksheet.py", line 1030, in write
  self.row(r).write(c, label, style)
  File "C:\Python27\lib\site-packages\xlwt\Worksheet.py", line 1078, in row
  self.__rows[indx] = self.Row(indx, self)
  File "C:\Python27\lib\site-packages\xlwt\Row.py", line 42, in __init__
  raise ValueError("row index (%r) not an int in range(65536)" % rowx)
  ValueError: row index (65536) not an int in range(65536)
  </code></pre>
  
  <p>`This is the code(some of my comments are not accurate because of edits I've done):</p>
  
  <pre><code>#import everything
      import xlrd
      import xlwt
      import sys
      from sys import argv
      import string
  
      #get workbooks from command line
      script,workbook1,destination = argv
  
      #set the limit of cells to loop through
      #cellnum=raw_input("How many cells do you want to work with?")
  
      #open the workbooks for working with
      wb=xlrd.open_workbook(workbook1)
      sh=wb.sheet_by_index(0)
      db=xlwt.Workbook()
  
      #manage db for writing
      db1=db.add_sheet('Definition')
      new_cell=[]
      cell_l=""
      printable=string.printable
      printable_n=printable.replace(".","").replace(":","").replace(string.lowercase,"").replace(string.uppercase,"")
      printable_m=printable_n
      #main loop
      i=0
      answer=raw_input("Til [empty] or til [row]?")
      if answer == "row":
          cellnum=raw_input("How many rows? do you want to work with?")
          while i&lt;=(int(cellnum)-1):
              new_cell=[]
          #reference correct cell and convert it to string format from unicode
              cell_x=sh.cell_value(i,0)
              cell_str=cell_x
  
  
          #capitalize
              if cell_str[0].islower():
                  cell_str_2=cell_str.capitalize()
              else:
                  cell_str_2=cell_str
          #add period
              if any((c in printable_m) for c in cell_str_2[-1]):
          #if cell_str_2[-1].contains(printable_m):
                  cell_str_f=cell_str_2[:-1]
                  new_cell+=cell_str_f+"."+"\n"
              elif cell_str_2[-1]!="." and cell_str_2[-1]!=":":
                  new_cell+=cell_str_2+"."+"\n"
              else:
                  new_cell+=cell_str_2+"\n"
  
          #add cell to new sheet
              db1.write(i,0,new_cell)
  
          #iterate to next cell
              i+=1
      elif answer =="empty":
          cell_type = sh.cell_type(i,0)
          cell_x=sh.cell_value(i,0)
          t=1
          while t&gt;0:
              if cell_type == xlrd.XL_CELL_EMPTY:
                  t=0
              else:
                  new_cell=[]
                  cell_str=cell_x
  
          #capitalize
                  if cell_str[0].islower():
                      cell_str_2=cell_str.capitalize()
                  else:
                      cell_str_2=cell_str
          #add period
                  if any((c in printable_m) for c in cell_str_2[-1]):
                      cell_str_f=cell_str_2[:-1]
                      new_cell+=cell_str_f+"."+"\n"
                  elif cell_str_2[-1]!="." and cell_str_2[-1]!=":":
                      new_cell+=cell_str_2+"."+"\n"
                  else:
                      new_cell+=cell_str_2+"\n"
  
  
          #add cell to new sheet
                  db1.write(i,0,new_cell)
  
          #iterate to next cell
                  i+=1
              #db1.write(i,0,new_cell)
      else:
          sys.exit("Didn't work. Make sure you input everything as prompted.")    
  
      #save and close
      db.save(destination)
  </code></pre>
  
  <p>`</p>