2016-11-18 1 views
0

나는 최근에 여기에 질문을했다. how can I read each line of a xls file with pausing 그리고 나는 내 문제를 해결하는 대답을 얻었다.우리가 멈추거나 멈추기까지 계속 반복하는 법

import time 
import pandas as pd 
import os 
import xlrd 
# at first I try to know how many rows and how many columns I have 
workbook = xlrd.open_workbook('myfile.xls') 
for sheet in workbook.sheets(): 
    for row in range(sheet.nrows): 
     for column in range(sheet.ncols): 
      os.system('clear') 
      print "value::: ", sheet.cell(row,column).value 
      time.sleep(5.5) # pause 5.5 seconds 

제가하고 싶은 것은 XLS의 행 라인의 끝으로 이동하는 방식으로 루프를 만든 다음 반복해서 내가 그것을 중지하거나 할 때까지 시작을 반환하는 것입니다을 다음과 같이 코드는 가끔 잠시 멈추십시오. 어떻게 해야할지 알고 있습니까?

+0

수정 된 답변을 참조하십시오. – Jovito

답변

2

그냥 다른 루프에 넣으십시오. 당신이 모든 일이 10 번 반복 할 경우 예를 들어, 그냥 이렇게 :

for i in xrange(10):  
    for sheet in workbook.sheets(): 
     num_of_cells = sheet.nrows * sheet.ncols 
     for cell in range(num_of_cells): 
      row = int(cell/sheet.ncols) 
      col = cell % sheet.ncols 
      print "value::: ", sheet.cell(row, col).value 
      time.sleep(5.5) # pause 5.5 seconds 
+0

상태가 아니기 때문에 Traceback (가장 최근에 마지막으로 호출) 조건으로 인해 오류가 발생했습니다. 파일 "my_prog2.py", 줄 16, NameError : name 'condition'도 정의되어 있지 않습니다. 터미널을 지우지 않는다. –

+0

@LearnerAlgorithm 'condition'을 루프가 끝난 후 루프를 종료하기를 원하는 실제 조건으로 바꿔야한다. – Jovito

2

아마 내가 찾은 가장 쉬운 방법은 pythonKeyboardInterrupt 예외 - 당신이 경우 즉, 물론입니다 '를 사용하는 것입니다 (Ctrl-C를 눌러서) 루프를 끝내면 전체 스크립트를 멈추고 다시 확인하십시오.

for sheet in workbook.sheets(): 
    for row in range(sheet.nrows): 
     for column in range(sheet.ncols): 
      try: 
       os.system('clear') 
       print "value::: ", sheet.cell(row,column).value 
       time.sleep(5.5) # pause 5.5 seconds 
      except KeyboardInterrupt: 
       pass #insert here anything you'd like your script to do before it halts 
+0

내게 오류가 발생했습니다. KeyboardInterrupt를 제외하고 사용했습니다 : Ctrl + C를 누르면 구문 오류가 발생합니다. 파일 "my_prog2.py", 줄 16 을 전달하십시오. 여기에 + do halts before do halts ^ SyntaxError : invalid syntax –

+0

왜 스크립트에 'Ctrl + C'를 썼습니까? :)'pass'는 기본적으로 '아무 것도하지 않는다'라는 독립 실행 형 구문입니다. 'Ctrl + C'를 삭제 한 후 사용해보십시오. 'pass '에 대한 주석이 여러분을 혼란스럽게 만들었을 때, 나는'pass'대신에 스크립트가 종료 될 때 수행 할 작업 (good-bye 메시지 작성 또는 파일 닫기 등)으로 대체 할 수 있다는 것을 의미했습니다. 내가 말한대로 – deefff

+0

, 나는 그것을 키워드로 멈추거나 키워드로 멈출 때까지 계속하기를 원한다. Ctrl + C 키를 계속 눌러도 내가 밟은 키워드가 무엇이든 중단되거나 일시 중지되거나 계속되지 않습니다. –

관련 문제