Bu input
işlevi komut dosyalarımı duraklatmanın bir yolu olarak kullanıyorum
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
Bunu yapmanın resmi bir yolu var mı?
Bu input
işlevi komut dosyalarımı duraklatmanın bir yolu olarak kullanıyorum
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
Bunu yapmanın resmi bir yolu var mı?
Yanıtlar:
Bana iyi geliyor (veya raw_input()
Python 2.X'te). Alternatif olarak time.sleep()
, belirli bir süre duraklamak istiyorsanız da kullanabilirsiniz .
import time
print("something")
time.sleep(5.5) # pause 5.5 seconds
print("something")
print
Uzun metin bloğunu görüntülemek için kullanın ve ardından Python sürümünüze uygun olarak input()
veya raw_input('Press <ENTER> to continue')
uygun şekilde kullanın.
input()
(veya raw_input()
Python 2.x'de) kullanmak en iyisidir . Hızlı okuyucular gecikmeyi beklemek istemez, yavaş okuyucular gecikmede daha fazla zaman isteyebilir, birisi okurken kesintiye uğrayabilir ve çok daha fazla zaman isteyebilir, vb. Ayrıca, birisi programı çok kullanırsa, nasıl çalıştığına alışık olabilir ve uzun metni bile okumasına gerek yoktur. Kullanıcının metin bloğunun okuma için ne kadar süre görüntüleneceğini kontrol etmesine izin vermek daha dostudur.
Yalnızca pencereler için :
import os
os.system("pause")
Bu yüzden, kodlama çabalarımda çok iyi çalıştığını buldum. Ben sadece bir işlev yarattı , çok programımın başlayarak her yıl
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
ve şimdi pause()
bir toplu iş dosyası yazıyormuşum gibi bu işlevi kullanabilmem gerekiyor. Örneğin , böyle bir programda:
import os
import system
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
print("Think about what you ate for dinner last night...")
pause()
Şimdi açıkçası bu programın bir amacı yoktur ve sadece örnek amaçlıdır, ama ne demek istediğimi tam olarak anlayabilirsiniz.
NOT: Python 3 için, input
aksineraw_input
Benzer bir sorum vardı ve sinyal kullanıyordum:
import signal
def signal_handler(signal_number, frame):
print "Proceed ..."
signal.signal(signal.SIGINT, signal_handler)
signal.pause()
Böylece SIGINT sinyali için bir işleyici kaydedersiniz ve herhangi bir sinyali beklerken duraklarsınız. Şimdi programınızın dışından (örneğin bash), kill -2 <python_pid>
python programınıza sinyal 2 (yani SIGINT) gönderecek şekilde çalıştırabilirsiniz . Programınız kayıtlı işleyicinizi arayacak ve çalışmaya devam edecektir.
signal.pause
.
python
Kullanıcı basana kadar kod yürütmeyi duraklatmak için 2 ve 3 için aşağıdakileri kullanıyorumENTER
import six
if six.PY2:
raw_input("Press the <ENTER> key to continue...")
else:
input("Press the <ENTER> key to continue...")
Tarafından sivri dışarı olarak mhawke ve steveha 'ın yorum, tam da bu soruya en iyi cevabı şöyle olacaktır:
Uzun bir metin bloğu için, zaman gecikmesi yerine kullanıcıyı istemek
input('Press <ENTER> to continue')
(veyaraw_input('Press <ENTER> to continue')
Python 2.x'de) kullanmak en iyisidir . Hızlı okuyucular gecikmeyi beklemek istemez, yavaş okuyucular gecikmede daha fazla zaman isteyebilir, birisi okurken kesintiye uğrayabilir ve çok daha fazla zaman isteyebilir, vb. Ayrıca, birisi programı çok kullanırsa, nasıl çalıştığına alışık olabilir ve uzun metni bile okumasına gerek yoktur. Kullanıcının metin bloğunun okuma için ne kadar süre görüntüleneceğini kontrol etmesine izin vermek daha dostudur.
Print ("This is how you pause")
input()
Sanırım bu çözümü seviyorum.
import getpass
getpass.getpass("Press Enter to Continue")
Kullanıcının yazdığı her şeyi gizler, bu da girdinin burada kullanılmadığını netleştirmeye yardımcı olur.
Ancak OSX platformunda dikkatli olun, kafa karıştırıcı olabilecek bir anahtar görüntüler.
Muhtemelen en iyi çözüm, read -s
arama yapmadan getpass modülüne benzer bir şey kendiniz yapmak olacaktır . Belki fg renginin bg ile eşleşmesi?
Bu yöntemle, yalnızca belirttiğiniz herhangi bir tuşa basarak programınıza devam edebilirsiniz:
import keyboard
while True:
key = keyboard.read_key()
if key == 'space': # you can put any key you like instead of 'space'
break
aynı yöntem ancak başka bir şekilde:
import keyboard
while True:
if keyboard.is_pressed('space'): # same, you can put any key you like instead of 'space'
break
Not: keyboard
sadece kabuk veya cmd'ye yazarak modülü kurabilirsiniz :
pip install keyboard
import os, sys
if sys.platform == 'win32':
os.system('pause')
else:
input('Press any key to continue...')