Python ile yeni başladım. Windows'da bir python komut dosyası yürüttüğümde, çıkış penceresi beliriyor ancak anında kayboluyor. Çıktımı analiz edebilmek için orada kalmam gerekiyor. Nasıl açık tutabilirim?
Python ile yeni başladım. Windows'da bir python komut dosyası yürüttüğümde, çıkış penceresi beliriyor ancak anında kayboluyor. Çıktımı analiz edebilmek için orada kalmam gerekiyor. Nasıl açık tutabilirim?
Yanıtlar:
Birkaç seçeneğiniz var:
Programı zaten açık olan bir terminalden çalıştırın. Bir komut istemi açın ve şunu yazın:
python myscript.py
Bunun çalışması için yolunuzda çalıştırılabilir python'a ihtiyacınız var. Windows'ta ortam değişkenlerini nasıl düzenleyeceğinizi kontrol edin ve ekleyin C:\PYTHON26
(veya python'u yüklediğiniz herhangi bir dizini).
Program sona erdiğinde, pencereyi kapatmak yerine cmd istemine geri dönecektir .
Komut dosyanızın sonunda beklemek için kod ekleyin. Python2 için ekleniyor ...
raw_input()
... senaryonun sonunda Enteranahtarı bekletiyor . Bu yöntem can sıkıcıdır, çünkü komut dosyasını değiştirmeniz ve işiniz bittiğinde kaldırmayı hatırlamanız gerekir. Diğer insanların senaryolarını test ederken özellikle sinir bozucu. Python3 için kullanın input()
.
Sizin için duraklatan bir düzenleyici kullanın. Python için hazırlanan bazı editörler, yürütme işleminden sonra sizin için otomatik olarak duraklar. Diğer düzenleyiciler, programınızı çalıştırmak için kullandığı komut satırını yapılandırmanıza olanak tanır. python -i myscript.py
Çalışırken " " olarak yapılandırmayı özellikle yararlı buluyorum . Bu, program bittikten sonra programın sonunda sizi bir python kabuğuna bırakır, böylece değişkenler ve çağrı işlevleri ve yöntemleri ile daha fazla oynayabilirsiniz.
cmd /k
herhangi bir konsol uygulamasını (yalnızca Python'u değil) uygulama kapandıktan sonra kalacak bir konsol penceresiyle açmanın tipik yoludur. Bunu yapmayı düşündüğüm en kolay yol, Win + R tuşlarına basmak, cmd /k
istediğiniz komut dosyasını Çalıştır iletişim kutusuna sürükleyip bırakmaktır.
cmd /k
yalnızca Windows içindir. Mac alternatifine yardım edemiyorum, üzgünüm.
Komut dosyasını zaten açık olan cmd penceresinden başlatın veya komut dosyasının sonuna Python 2'de böyle bir şey ekleyin:
raw_input("Press enter to exit ;)")
Veya Python 3'te:
input("Press enter to exit ;)")
İstisna durumunda pencerenizi açık tutmak için (yine de istisnayı yazdırırken)
if __name__ == '__main__':
try:
## your code, typically one function call
except Exception:
import sys
print sys.exc_info()[0]
import traceback
print traceback.format_exc()
print "Press Enter to continue ..."
raw_input()
Her durumda pencereyi açık tutmak için:
if __name__ == '__main__':
try:
## your code, typically one function call
except Exception:
import sys
print sys.exc_info()[0]
import traceback
print traceback.format_exc()
finally:
print "Press Enter to continue ..."
raw_input()
Python3 için, gerekecek kullanmak input()
yerineraw_input()
, ve tabii ki uyum print
ifadeleri.
if __name__ == '__main__':
try:
## your code, typically one function call
except BaseException:
import sys
print(sys.exc_info()[0])
import traceback
print(traceback.format_exc())
print("Press Enter to continue ...")
input()
Her durumda pencereyi açık tutmak için:
if __name__ == '__main__':
try:
## your code, typically one function call
except BaseException:
import sys
print(sys.exc_info()[0])
import traceback
print(traceback.format_exc())
finally:
print("Press Enter to continue ...")
input()
cevapları daha önce birleştirebilirsiniz: (Notepad ++ Kullanıcısı için)
geçerli komut dosyasını çalıştırmak için F5 tuşuna basın ve komutu yazın:
cmd /k python -i "$(FULL_CURRENT_PATH)"
Bu şekilde Notepad ++ python betiğinizi çalıştırdıktan sonra etkileşimli modda kalırsınız ve değişkenlerinizle birlikte oynayabilirsiniz :)
Şu 2 satırla bir Windows toplu iş dosyası oluşturun:
python your-program.py
pause
import os os.system("pause")
sonunda.py
raw_input
ya da diğer çöp basitçe yanlış. Komut satırınıza komutunuzu Python'un sizden beklediği şekilde yazın veya Ağustos 1981'den beri MS-DOS ile sağlanan toplu dili tam olarak bu amaçla kullanın .
python %*
ve "ile birlikte aç" programlarından biri olarak ayarlayın , böylece bir duraklama penceresi açmak için bir .py dosyasına sağ tıklayabilirsiniz veya ayrıca Ana_da3 klasörüne (PATH'de) py_pause.bat olarak koydum. py_pause my-prog.py all my args
Cmd hattından koşabilirim
Python 2'de şunu yapabilirsiniz: raw_input ()
>>print("Hello World!")
>>raw_input('Waiting a key...')
Python 3'te bunu şu şekilde yapabilirsiniz: input ()
>>print("Hello world!")
>>input('Waiting a key...')
Ayrıca, time.sleep (time) ile de yapabilirsiniz.
>>import time
>>print("The program will close in 5 seconds")
>>time.sleep(5)
Düğmesini kullanarak atexit
, programı çıktıktan hemen sonra duraklatabilirsiniz. Bir hata / istisna çıkış nedeniyse, yığın izini yazdırdıktan sonra duraklar.
import atexit
# Python 2 should use `raw_input` instead of `input`
atexit.register(input, 'Press Enter to continue...')
Benim programında, ben çağrısına koymak atexit.register
içinde except
bir şeyler ters giderse sadece duraklar böylece, fıkra.
if __name__ == "__main__":
try:
something_that_may_fail()
except:
# Register the pause.
import atexit
atexit.register(input, 'Press Enter to continue...')
raise # Reraise the exception.
Benzer bir sorun yaşadım. Notepad ++ ile C:\Python27\python.exe "$(FULL_CURRENT_PATH)"
kod sonlandırıldıktan hemen sonra cmd penceresini kapatan şu komutu kullanıyordum .
Şimdi cmd /k c:\Python27\python.exe "$(FULL_CURRENT_PATH)"
cmd penceresini açık tutan kullanıyorum .
Pencereyi açık tutmak için Anurag'a katılıyorum ve kısa hesaplama tipi programları için pencerelerimi açık tutmak için yaptığım şey bu.
Bu yalnızca metin içermeyen bir imleci gösterir:
raw_input()
Bu sonraki örnek size programın yapıldığına ve program içindeki başka bir giriş isteminde beklemediğine dair net bir mesaj verecektir:
print('You have reached the end and the "raw_input()" function is keeping the window open')
raw_input()
Not!
(1) Python 3'te raw_input () yoktur , sadece input () olur .
(2) Bir dizeyi belirtmek için tek tırnak kullanın; aksi takdirde, "raw_input ()" gibi bir şeyin etrafına çiftler yazarsanız, bunun metin değil, bir işlev, değişken vb. olduğunu düşünür.
Bu sonraki örnekte, çift tırnak kullanımı ve olmayacak bunu okuduğunda, kendi zihin bunun mükemmel mantıklı olsa bile "" ve "fonksiyonu" arasında tırnak içinde bir ara var işi düşündüğü için:
print("You have reached the end and the "input()" function is keeping the window open")
input()
Umarım bu, başlangıçta olabilecek ve hala bilgisayarın nasıl düşündüğünü çözemeyen diğerlerine yardımcı olur. Biraz zaman alabilir. :Ö)
Komut dosyanızı bir masaüstü kısayolundan çalıştırmak istiyorsanız, python dosyanızı sağ tıklayın ve öğesini seçin Send to|Desktop (create shortcut)
. Ardından kısayola sağ tıklayın ve Özellikler'i seçin. Kısayol sekmesinde Hedef: metin kutusunu seçin ve cmd /k
yolun önüne ekleyin ve Tamam'ı tıklatın. Kısayol artık komut dosyanızı kapatmadan çalıştırmalı veinput('Hit enter to close')
Makinenizde birden fazla python sürümü varsa, cmd / k ile aşağıdaki komut dosyası yolu arasında gerekli olan python'un adını ekleyin:
cmd /k python3 "C:\Users\<yourname>\Documents\your_scipt.py"
Bunun dışında input
ve raw_input
, ayrıca sonsuz kullanabilirsiniz while
: Böyle döngü,
while True: pass
(Python 2.5 + / 3) veya while 1: pass
(Python 2/3 tüm sürümlerini). Ancak bu hesaplama gücünü kullanabilir.
Programı komut satırından da çalıştırabilirsiniz. Tip python
komut satırından (Mac OS X Terminali) içine ve şöyle demeliydi Python 3.?.?
seninse Python sürümünü gösterin ya diyor vermez (Kişisel Python sürümü) python: command not found
, (enviromentl yukarıda listelenen değerler,) / türü YOLU değerlerini değiştirerek içine göz C:\(Python folder\python.exe
. O başarılı, tip olursa python
veya C:\(Python installation)\python.exe
ve tam dizin programınızın.
Çok gecikmiş bir yanıt, ancak pythonbat.bat
aşağıdakileri içeren bir Windows Toplu İş dosyası oluşturdum :
python.exe %1
@echo off
echo.
pause
ve ardından dosyalar pythonbat.bat
için varsayılan işleyici olarak belirtilir .py
.
Şimdi, .py
Dosya Gezgini'nde bir dosyayı çift tıkladığımda , yeni bir konsol penceresi açar, Python komut dosyasını çalıştırır ve herhangi bir tuşa basana kadar duraklar (açık kalır) ...
Herhangi bir Python betiğinde değişiklik gerekmez.
Hala bir konsol penceresi açabilir ve python myscript.py
isteyip istemediğimi belirtebilirim ...
(@Maurizio'nun bu cevabı zaten gönderdiğini fark ettim)
Sadece yazabilirsin
input()
kodunuzun sonunda
bu yüzden senaryonu çalıştırdığın zaman bir şey girmeni bekler
{ENTER for example}
PowerShell'i açıp "python" yazabilirsiniz. Python içe aktarıldıktan sonra, kodu çalıştırmak için kaynak kodunu favori metin düzenleyicinizden yapıştırın.
Pencere kapanmıyor.
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User")
print "hello world"
python hello.py
En basit yol:
import time
#Your code here
time.sleep(60)
#end of code (and console shut down)
bu, kodu 1 dakika kadar açık bırakıp kapatır.
Windows 10'da şunu başlatarak ekleyin:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Garip, ama benim için işe yarıyor! (Sonunda () ile birlikte, elbette)