How to stop inifinite loop with specific key instead of keyboard Interrupt exception?












0















Simplified version of code is below. In the while loop I normally process data from serial port and measurement is not limited by time or any value. I want to stop execution with key anytime i need to stop.



try-except is easiest way but it will affect also main code it is implemented. It is not good option in my case. I couldn't find how to fit keyboard monitoring here enter link description hereinto class and also same for signals. I would like to insert an if-statement which calls other function in class to stop execution of loop. Any help would appreciated. Thanks



import time

class Something:

def __init__(self):
self.looping()

def looping(self):
i=0
while True:
i+=1
time.sleep(1)
print(i)

some=Something()









share|improve this question




















  • 1





    Why would a try / except KeyboardInterrupt affect the rest of your code?

    – roganjosh
    Nov 22 '18 at 10:15













  • Old related: stackoverflow.com/questions/1335507/…

    – gustavovelascoh
    Nov 22 '18 at 10:16











  • You could create a second thread that changes a variable value on keyboardinput. And let the main thread run the while loop while variable True.

    – van der Zon Stef
    Nov 22 '18 at 10:24
















0















Simplified version of code is below. In the while loop I normally process data from serial port and measurement is not limited by time or any value. I want to stop execution with key anytime i need to stop.



try-except is easiest way but it will affect also main code it is implemented. It is not good option in my case. I couldn't find how to fit keyboard monitoring here enter link description hereinto class and also same for signals. I would like to insert an if-statement which calls other function in class to stop execution of loop. Any help would appreciated. Thanks



import time

class Something:

def __init__(self):
self.looping()

def looping(self):
i=0
while True:
i+=1
time.sleep(1)
print(i)

some=Something()









share|improve this question




















  • 1





    Why would a try / except KeyboardInterrupt affect the rest of your code?

    – roganjosh
    Nov 22 '18 at 10:15













  • Old related: stackoverflow.com/questions/1335507/…

    – gustavovelascoh
    Nov 22 '18 at 10:16











  • You could create a second thread that changes a variable value on keyboardinput. And let the main thread run the while loop while variable True.

    – van der Zon Stef
    Nov 22 '18 at 10:24














0












0








0








Simplified version of code is below. In the while loop I normally process data from serial port and measurement is not limited by time or any value. I want to stop execution with key anytime i need to stop.



try-except is easiest way but it will affect also main code it is implemented. It is not good option in my case. I couldn't find how to fit keyboard monitoring here enter link description hereinto class and also same for signals. I would like to insert an if-statement which calls other function in class to stop execution of loop. Any help would appreciated. Thanks



import time

class Something:

def __init__(self):
self.looping()

def looping(self):
i=0
while True:
i+=1
time.sleep(1)
print(i)

some=Something()









share|improve this question
















Simplified version of code is below. In the while loop I normally process data from serial port and measurement is not limited by time or any value. I want to stop execution with key anytime i need to stop.



try-except is easiest way but it will affect also main code it is implemented. It is not good option in my case. I couldn't find how to fit keyboard monitoring here enter link description hereinto class and also same for signals. I would like to insert an if-statement which calls other function in class to stop execution of loop. Any help would appreciated. Thanks



import time

class Something:

def __init__(self):
self.looping()

def looping(self):
i=0
while True:
i+=1
time.sleep(1)
print(i)

some=Something()






python python-3.x while-loop infinite-loop pynput






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 22 '18 at 10:16









roganjosh

6,31731228




6,31731228










asked Nov 22 '18 at 10:14









B_CB_C

41




41








  • 1





    Why would a try / except KeyboardInterrupt affect the rest of your code?

    – roganjosh
    Nov 22 '18 at 10:15













  • Old related: stackoverflow.com/questions/1335507/…

    – gustavovelascoh
    Nov 22 '18 at 10:16











  • You could create a second thread that changes a variable value on keyboardinput. And let the main thread run the while loop while variable True.

    – van der Zon Stef
    Nov 22 '18 at 10:24














  • 1





    Why would a try / except KeyboardInterrupt affect the rest of your code?

    – roganjosh
    Nov 22 '18 at 10:15













  • Old related: stackoverflow.com/questions/1335507/…

    – gustavovelascoh
    Nov 22 '18 at 10:16











  • You could create a second thread that changes a variable value on keyboardinput. And let the main thread run the while loop while variable True.

    – van der Zon Stef
    Nov 22 '18 at 10:24








1




1





Why would a try / except KeyboardInterrupt affect the rest of your code?

– roganjosh
Nov 22 '18 at 10:15







Why would a try / except KeyboardInterrupt affect the rest of your code?

– roganjosh
Nov 22 '18 at 10:15















Old related: stackoverflow.com/questions/1335507/…

– gustavovelascoh
Nov 22 '18 at 10:16





Old related: stackoverflow.com/questions/1335507/…

– gustavovelascoh
Nov 22 '18 at 10:16













You could create a second thread that changes a variable value on keyboardinput. And let the main thread run the while loop while variable True.

– van der Zon Stef
Nov 22 '18 at 10:24





You could create a second thread that changes a variable value on keyboardinput. And let the main thread run the while loop while variable True.

– van der Zon Stef
Nov 22 '18 at 10:24












1 Answer
1






active

oldest

votes


















1














import time
class Something:
def __init__(self):
self.looping()

def looping(self):
i=0

while True:
try:
i+=1
time.sleep(1)
print(i)
except KeyboardInterrupt:
break
some=Something()





share|improve this answer


























  • I did this but instead of this, i would like assign a key for break. not ctrl+c

    – B_C
    Nov 22 '18 at 10:25











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53428595%2fhow-to-stop-inifinite-loop-with-specific-key-instead-of-keyboard-interrupt-excep%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














import time
class Something:
def __init__(self):
self.looping()

def looping(self):
i=0

while True:
try:
i+=1
time.sleep(1)
print(i)
except KeyboardInterrupt:
break
some=Something()





share|improve this answer


























  • I did this but instead of this, i would like assign a key for break. not ctrl+c

    – B_C
    Nov 22 '18 at 10:25
















1














import time
class Something:
def __init__(self):
self.looping()

def looping(self):
i=0

while True:
try:
i+=1
time.sleep(1)
print(i)
except KeyboardInterrupt:
break
some=Something()





share|improve this answer


























  • I did this but instead of this, i would like assign a key for break. not ctrl+c

    – B_C
    Nov 22 '18 at 10:25














1












1








1







import time
class Something:
def __init__(self):
self.looping()

def looping(self):
i=0

while True:
try:
i+=1
time.sleep(1)
print(i)
except KeyboardInterrupt:
break
some=Something()





share|improve this answer















import time
class Something:
def __init__(self):
self.looping()

def looping(self):
i=0

while True:
try:
i+=1
time.sleep(1)
print(i)
except KeyboardInterrupt:
break
some=Something()






share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 22 '18 at 10:21

























answered Nov 22 '18 at 10:17









Srce CdeSrce Cde

1,144511




1,144511













  • I did this but instead of this, i would like assign a key for break. not ctrl+c

    – B_C
    Nov 22 '18 at 10:25



















  • I did this but instead of this, i would like assign a key for break. not ctrl+c

    – B_C
    Nov 22 '18 at 10:25

















I did this but instead of this, i would like assign a key for break. not ctrl+c

– B_C
Nov 22 '18 at 10:25





I did this but instead of this, i would like assign a key for break. not ctrl+c

– B_C
Nov 22 '18 at 10:25


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53428595%2fhow-to-stop-inifinite-loop-with-specific-key-instead-of-keyboard-interrupt-excep%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

404 Error Contact Form 7 ajax form submitting

How to know if a Active Directory user can login interactively

Refactoring coordinates for Minecraft Pi buildings written in Python