Hoe voer je een python-script uit vanuit IDLE interactieve shell?

Hoe voer ik een python-script uit vanuit de IDLE interactieve shell?

Het volgende geeft een fout:

>>> python helloworld.py
SyntaxError: invalid syntax

Antwoord 1, autoriteit 100%

Python3:

exec(open('helloworld.py').read())

Als uw bestand niet in dezelfde map staat:

exec(open('./app/filename.py').read())

Zie https://stackoverflow.com/a/437857/739577voor het doorgeven van globale/lokale variabelen.

p>


In verouderde Python-versies

Python2
Ingebouwde functie: execbestand

execfile('helloworld.py')

Het kan normaal gesproken niet worden aangeroepen met argumenten. Maar hier is een oplossing:

import sys
sys.argv = ['helloworld.py', 'arg']  # argv[0] should still be the script name
execfile('helloworld.py')

Verouderd sinds 2.6: popen

import os
os.popen('python helloworld.py') # Just run the program
os.popen('python helloworld.py').read() # Also gets you the stdout

Met argumenten:

os.popen('python helloworld.py arg').read()

Geavanceerd gebruik: subproces

import subprocess
subprocess.call(['python', 'helloworld.py']) # Just run the program
subprocess.check_output(['python', 'helloworld.py']) # Also gets you the stdout

Met argumenten:

subprocess.call(['python', 'helloworld.py', 'arg'])

Lees de documenten voor details 🙂


Getest met deze basis helloworld.py:

import sys
if len(sys.argv) > 1:
    print(sys.argv[1])

Antwoord 2, autoriteit 24%

Je kunt dit gebruiken in python3:

exec(open(filename).read())

Antwoord 3, autoriteit 15%

Het IDLE-shellvenster is niet hetzelfde als een terminal-shell (bijv. shof bashuitvoeren). Het is eerder alsof je in de Python-interactieve interpreter bent (python -i). De eenvoudigste manier om een script in IDLE uit te voeren, is door de opdracht Opente gebruiken in het menu File(dit kan een beetje variëren, afhankelijk van het platform dat u gebruikt) om uw scriptbestand naar een IDLE-editorvenster en gebruik vervolgens de Run-> Run Modulecommando (sneltoets F5).


Antwoord 4, autoriteit 4%

Probeer dit

import os
import subprocess
DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')
subprocess.call(['python', DIR])

Antwoord 5, autoriteit 4%

GEMAKKELIJKSTE MANIER

python -i helloworld.py  #Python 2
python3 -i helloworld.py #Python 3

Antwoord 6, autoriteit 2%

execFile('helloworld.py')doet het werk voor mij. Een ding om op te merken is om de volledige mapnaam van het .py-bestand in te voeren als het niet in de Python-map zelf staat (dit is tenminste het geval op Windows)

Bijvoorbeeld execFile('C:/helloworld.py')


Antwoord 7

Bijvoorbeeld:

import subprocess
subprocess.call("C:\helloworld.py")
subprocess.call(["python", "-h"])

Antwoord 8

In een python-console kan men de volgende 2 manieren proberen.

onder dezelfde werkmap,

1.
>> import helloworld

# als u een variabele xheeft, kunt u deze afdrukken in IDLE.

>> halloworld.x

# als je een functie funchebt, kun je deze ook zo aanroepen.

>> helloworld.func()

2.
>> runfile(./helloworld.py”)


Antwoord 9

In Python 3 is er geen execFile. Men kan de ingebouwde functie execgebruiken , bijvoorbeeld:

import helloworld
exec('helloworld')

Antwoord 10

In IDLE werkt het volgende:-

import helloworld

Antwoord 11

Als u een python-script wilt uitvoeren in een python-shell zoals Idle of in een Django-shell, kunt u het volgende doen met de functie exec(). Exec() voert een code-objectargument uit. Een code-object in Python is gewoon gecompileerde Python-code. U moet dus eerst uw scriptbestand compileren en vervolgens uitvoeren met exec(). Vanuit je schelp:

>>>file_to_compile = open('/path/to/your/file.py').read()
>>>code_object = compile(file_to_compile, '<string>', 'exec')
>>>exec(code_object)

Ik gebruik Python 3.4. Zie de compilerenen exec-documenten voor gedetailleerde informatie.


Antwoord 12

Ik heb dit getest en het werkt een beetje :

exec(open('filename').read())  # Don't forget to put the filename between ' '

Antwoord 13

je kunt het op twee manieren doen

  • import file_name

  • exec(open('file_name').read())

maar zorg ervoor dat het bestand wordt opgeslagen waar uw programma draait


Antwoord 14

In een Windows-omgeving kunt u het py-bestand uitvoeren op de Python3-shellopdrachtregel met de volgende syntaxis:

exec(open(‘absoluut pad naar bestandsnaam’).read())

Hieronder wordt uitgelegd hoe u een eenvoudig helloworld.py-bestand uitvoert vanaf de opdrachtregel van de python-shell

Bestandslocatie: C:/Users/testuser/testfolder/helloworld.py

Bestandsinhoud: print(“hello world”)

We kunnen dit bestand op Python3.7 Shell als volgt uitvoeren:

>>> import os
>>> abs_path = 'C://Users/testuser/testfolder'
>>> os.chdir(abs_path)
>>> os.getcwd()
'C:\\Users\\testuser\\testfolder'
>>> exec(open("helloworld.py").read())
hello world
>>> exec(open("C:\\Users\\testuser\\testfolder\\helloworld.py").read())
hello world
>>> os.path.abspath("helloworld.py")
'C:\\Users\\testuser\\testfolder\\helloworld.py'
>>> import helloworld
hello world

Antwoord 15

Er is nog een alternatief (voor Windows) –

   import os
    os.system('py "<path of program with extension>"')

Other episodes