Hoe u Python-sluiting onmiddellijk kunt stoppen wanneer u wordt uitgevoerd in Microsoft Windows

Ik ben net begonnen met de universiteit en we gaan Python gebruiken. We hebben echt niets gedaan, dus ik heb het programma gedownload en heb wat afdrukopdrachten gedaan, en dat is het.

Wanneer ik mijn .py-bestand (een print-opdracht) uitvoeren) sluit het onmiddellijk na het verschijnen. Ik begrijp waarom het dit doet – het krijgt de output, dus het is gedaan wat het nodig heeft om te doen – maar ik begrijp ook dat je dit kunt stoppen met gebeuren.

Ik keek op deze website en geen van de oplossingen die aan deze vraag werden gegeven, of dat of ik heb ze niet begrepen.

Is er een eenvoudige opdracht die ik kan invoeren op mijn idle-editor die het programma in de wacht of zo zal plaatsen? Ik heb input("prompt: ")zoals gesuggereerd door iemand, en dat heeft geen verschil gemaakt.

Als er hiervoor geen opdracht is, is er een manier om de instellingen op de computer te wijzigen, zodat programma’s niet automatisch sluiten?


Antwoord 1, Autoriteit 100%

In Python 3 voegt u het volgende toe aan het einde van uw code:

input('Press ENTER to exit')

Hierdoor zal het programma wachten op de gebruikersinvoer, met het indienen van de invoer die het programma kan voltooien.

U kunt dubbelklikken op uw script.pybestand in Windows handig op deze manier.


Antwoord 2, Autoriteit 62%

Het enige dat voor mij heeft gewerkt -I-opdrachtregelargument.

Plaats gewoon al uw Python-code in een .py-bestand en voer vervolgens de volgende opdracht uit;

python -i script.py

Het betekent dat als u -I-variabele is ingesteld en uw module uitvoert, dan gaat Python niet af op SystemExit.
Lees meer bij DIT Link .


Antwoord 3, Autoriteit 38%

Open uw CMD (opdrachtprompt) en voer vanaf daar Python Commmands uit.
(Op Windows Ga naar het uitvoeren of zoeken en typen CMD)
Het zou er als volgt uit moeten zien:

python yourprogram.py 

Hiermee wordt uw code uitgevoerd in CMD en wordt geopend.
Om echter Python Command te gebruiken, moet Python echter correct worden geïnstalleerd, zodat CMD het als een opdracht herkent. Afrekenen juiste installatie en variabele registratie voor uw besturingssysteem als dit niet gebeurt


Antwoord 4, Autoriteit 25%

Voer de opdracht uit met behulp van de Windows-opdrachtprompt vanaf uw belangrijkste bron van Python Library.
Voorbeeld.

C:\Python27\python.exe directoryToFile\yourprogram.py

Antwoord 5, Autoriteit 25%

Zet

input('Press ENTER to exit')

Aan het einde om het te laten stoppen.


Antwoord 6, Autoriteit 12%

Als u gewoon een vertraging wilt

from time import *
sleep(20)

Antwoord 7, Autoriteit 8%

Afhankelijk van wat ik het gebruik voor, of als ik iets doe dat anderen zullen gebruiken, ben ik meestal gewoon input("Do eighteen backflips to continue")Als het alleen voor mij is , als anderen zullen gebruiken, maak ik gewoon een batchbestand aan en pauzeer deze na

cd '/file/path/here'
python yourfile.py
pause 

Ik gebruik het bovenstaande als er bestanden worden hernoemd, verplaatst, gekopieerd, enz. en mijn cmd moet in de specifieke map staan om dingen te laten vallen waar ik ze wil, anders – gewoon

python '/path/to/file/yourfile.py'
pause

Antwoord 8, autoriteit 4%

In Python 2.7 werkt het toevoegen van dit aan het einde van mijn py-bestand (if __name__ == '__main__':):

closeInput = raw_input("Press ENTER to exit")
print "Closing..."

Antwoord 9, autoriteit 4%

De reden waarom het wordt gesloten is omdat het programma niet meer draait, voeg gewoon een lus of invoer toe om dit op te lossen (of je kunt het gewoon door inactief laten lopen.)


Antwoord 10, autoriteit 4%

Ik weet een simpel antwoord!
Open je cmd, typ in: cd C:\directory your file is inen typ vervolgens python your progam.py


Antwoord 11

Nou, ik heb een soortgelijk probleem,
Het wordt opgelost door omgevingsvariabele toe te voegen.

Systeemvariabelen in venster toevoegen

Naam: PYTHONPATH

Waarde: C:\Python27;

Uw Python-pad.


Antwoord 12

Ik denk dat ik te laat ben om deze vraag te beantwoorden, maar hier gaat toch niets.

Ik ben eerder tegen hetzelfde probleem aangelopen en ik denk dat er twee alternatieve oplossingen zijn waaruit je kunt kiezen.

  1. slaap gebruiken(_sometime)

from time import *
sleep(10)

  1. met een promptbericht (merk op dat ik python 2.7 gebruik)

exit_now = raw_input("Do you like to exit now (Y)es (N)o ? ")'

if exit_now.lower() = 'n'

//more processing here

Als alternatief kunt u ook een hybride van deze twee methoden gebruiken, waarbij u om een bericht kunt vragen en slaap (soms) ook kunt gebruiken om het sluiten van het venster te vertragen. de keuze is aan jou.

Houd er rekening mee dat het bovenstaande slechts ideeën zijn en als u een van deze in de praktijk wilt gebruiken, moet u misschien een beetje nadenken over uw toepassingslogica.


Antwoord 13

Ik kon nergens op internet een echte niet-scriptspecifieke oplossing vinden, dubbelklik en het venster sluit niet. Ik denk dat ik te lui ben om te slepen en neer te zetten of te typen als dat niet nodig is, dus na wat experimenteren kwam ik met een oplossing.

Het basisidee is om .py-bestanden opnieuw te koppelen, zodat ze een afzonderlijk initieel script uitvoeren voordat het beoogde script wordt uitgevoerd. Het eerste script start een nieuw opdrachtpromptvenster met de parameter /k, waardoor de opdrachtprompt na voltooiing open blijft en het beoogde script in het nieuwe venster wordt uitgevoerd.

Misschien zijn er goede redenen om dit niet te doen, mensen met meer kennis, gelieve commentaar te geven als dat zo is, maar ik denk dat als ik iets tegenkom, het gemakkelijk is om terug te keren indien nodig. Een mogelijk ongewenst neveneffect is slepen en neerzetten of typen en uitvoeren vanaf een opdrachtprompt. Er wordt nu een tweede opdrachtprompt geopend in plaats van te worden uitgevoerd in de opdrachtprompt die u hebt gesleept of ingetypt.

Voor de implementatie noem ik het initiële python-script python_cmd_k.pyw. Ik gebruik Python 3.7. De vereiste code kan verschillen voor andere versies. Wijzig het pad C:\Python37\python.exe naar de locatie van uw python-installatie. Koppel .pyw-bestanden aan pythonw.exe (niet python.exe) via Windows als ze dat nog niet zijn.

import subprocess
import sys
#Run a python script in a new command prompt that does not close
command = 'start cmd /k C:\Python37\python.exe "' + sys.argv[1] + '"'
subprocess.run(command, shell=True)

Dit wordt uitgevoerd elke keer dat u dubbelklikt op een .py-script en start een nieuwe opdrachtprompt om het script uit te voeren waarop u dubbelklikt. Als u pythonw.exe doorloopt, wordt het opdrachtpromptvenster onderdrukt wanneer dit eerste script wordt uitgevoerd. Anders, als je het via python.exe uitvoert, verschijnt er een irritant knipperen van een opdrachtprompt als resultaat van het eerste venster dat elke keer kort wordt weergegeven. Het beoogde script wordt weergegeven omdat de code in het oorspronkelijke script hierboven het beoogde script uitvoert met python.exe.

Associëren .py-bestanden nu met python.exe (niet pythonw.exe) via Windows als ze dat nog niet zijn en bewerk de registervermelding voor deze koppeling (Disclaimer: maak altijd een back-up van uw register voordat u het bewerkt als u niet zeker weet wat jij bent aan het doen). Ik weet niet of er verschillende paden in het register zijn voor bestandskoppeling voor verschillende versies van Windows, maar voor mij is het op:

HKEY_CURRENT_USER\Software\Classes\Applications\python.exe\shell\open\command

Wijzig de gegevens in het pad pythonw.exe (niet python.exe) en voeg het pad toe aan het bovenstaande ptyhon-script en “%1” als argumenten (“%1” geeft het volledige pad door van het dubbel geklikte bestand). Als pythonw.exe en python_cmd_k.pyw zich bijvoorbeeld in C:\Python37\ bevinden, dan:

"C:\Python37\pythonw.exe" "C:\Python37\python_cmd_k.pyw" "%1"

Het is niet nodig om python_cmd_k.pyw in dezelfde map te plaatsen als pythonw.exe, zolang je het juiste pad voor beide opgeeft. U kunt deze in .reg-bestanden plaatsen om eenvoudig heen en weer te schakelen tussen het gebruik van het script en het standaardgedrag. Wijzig de paden indien nodig in de onderstaande voorbeelden (locatie in het register, uw installatie van python, de locatie waar u uw python_cmd_k.pyw-script plaatst).

Met ptyhon_cmd_k.pyw (wijzig paden indien nodig):

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\Applications\python.exe\shell\open\command]
@="\"C:\\Python37\\pythonw.exe\" \"C:\\Python37\\python_cmd_k.pyw\" \"%1\""

Standaardversie (wijzig paden indien nodig):

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\Applications\python.exe\shell\open\command]
@="\"C:\\Python37\\python.exe\" \"%1\""

Antwoord 14

Laat hier, maar voor het geval iemand hier komt van Google—

Ga naar de locatie van uw .py-bestand. Druk op SHIFT, klik dan ergens met de rechtermuisknop en kies vanaf hier de opdrachtprompt openen. Zodra het klaar is, voeg je gewoon

. toe

“python NameOfTheProg.py” naar de cmd-regel


Antwoord 15

Voeg gewoon een regel code toe in inactieve “input()”


Antwoord 16

Heel eenvoudig:

  1. Open opdrachtprompt als beheerder.
  2. Typ python.exe(op voorwaarde dat je het pad ervan hebt opgegeven in omgevingsvariabelen)

Vervolgens zal in hetzelfde opdrachtpromptvenster de python-interpreter beginnen met >>>

Dit werkte voor mij.

Other episodes