Як запустити скрипт python з інтерактивної оболонки IDLE?
Наступна помилка:
>>> python helloworld.py
SyntaxError: invalid syntax
python helloworld.py
у вікні оболонки IDLE, і це не працює.
Як запустити скрипт python з інтерактивної оболонки IDLE?
Наступна помилка:
>>> python helloworld.py
SyntaxError: invalid syntax
python helloworld.py
у вікні оболонки IDLE, і це не працює.
Відповіді:
Python3 :
exec(open('helloworld.py').read())
Якщо ваш файл не в одному режимі:
exec(open('./app/filename.py').read())
Див. Https://stackoverflow.com/a/437857/739577 для передачі глобальних / локальних змінних.
У застарілих версіях Python
Python2 Вбудовані функції: ExecFile
execfile('helloworld.py')
Зазвичай це не можна викликати аргументами. Але ось вирішення:
import sys
sys.argv = ['helloworld.py', 'arg'] # argv[0] should still be the script name
execfile('helloworld.py')
Застаріло з 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
З аргументами:
os.popen('python helloworld.py arg').read()
Попереднє використання: підпроцес
import subprocess
subprocess.call(['python', 'helloworld.py']) # Just run the program
subprocess.check_output(['python', 'helloworld.py']) # Also gets you the stdout
З аргументами:
subprocess.call(['python', 'helloworld.py', 'arg'])
Детально прочитайте документи :-)
Перевірено з цим базовим helloworld.py
:
import sys
if len(sys.argv) > 1:
print(sys.argv[1])
exec
для Python3
Вікно оболонки IDLE не збігається з термінальною оболонкою (наприклад, працює sh
або bash
). Скоріше, це як би бути в інтерактивному інтерпретаторі Python ( python -i
). Найпростіший спосіб запуску сценарію в IDLE - це використання Open
команди з File
меню (це може дещо відрізнятися залежно від того, на якій платформі ви працюєте), щоб завантажити файл сценарію у вікно редактора IDLE, а потім скористатися командою Run
-> Run Module
(ярлик F5).
sys.argv
на самому початку програми, наприклад, під звичайною if __name__ == "__main__"
котловою панеллю.
Run
-> Run with Customized...
(ярлик Shift + F5), і відкриється спливаюче вікно, де ви можете надати свої аргументи. На жаль, наразі вони не пам’ятають їх, тому ви будете вставляти їх з кожним пробігом.
Спробуйте це
import os
import subprocess
DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')
subprocess.call(['python', DIR])
execFile('helloworld.py')
робить роботу для мене. Що слід зазначити, це ввести повне ім’я файлу .py-файлу, якщо він не знаходиться в самій папці Python (принаймні, це так у Windows)
Наприклад, execFile('C:/helloworld.py')
Наприклад:
import subprocess
subprocess.call("C:\helloworld.py")
subprocess.call(["python", "-h"])
subprocess.call(r'c:\path\to\something.py')
не працює для мене. OSError: [WinError 193]% 1 не є дійсною програмою Win32
В IDLE працює наступне:
import helloworld
Я не знаю багато про те, чому це працює, але це робить ..
Для запуску сценарію python в оболонці python, такому як Idle або в оболонці Django, ви можете виконати наступні дії за допомогою функції exec (). Exec () виконує аргумент об'єктного коду. Кодовий об’єкт в Python - просто скомпільований код Python. Отже, спочатку потрібно скомпілювати файл сценарію, а потім виконати його за допомогою exec (). З вашої оболонки:
>>>file_to_compile = open('/path/to/your/file.py').read() >>>code_object = compile(file_to_compile, '<string>', 'exec') >>>exec(code_object)
Я використовую Python 3.4. Докладні відомості див. У документах компіляції та виконання .
Я перевірив це, і це щось виходить:
exec(open('filename').read()) # Don't forget to put the filename between ' '
У середовищі Windows ви можете виконати файл py у командному рядку оболонки Python3 із таким синтаксисом:
exec (відкрити ("абсолютний шлях до імені файлу"). read ())
Нижче пояснено, як виконати простий файл helloworld.py з командного рядка оболонки python
Розташування файлу: C: /Users/testuser/testfolder/helloworld.py
Вміст файлу: print ("привіт світ")
Ми можемо виконати цей файл на оболонці Python3.7 як нижче:
>>> 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
Є ще одна альтернатива (для Windows) -
import os
os.system('py "<path of program with extension>"')
У консолі пітона можна спробувати наступні 2 способи.
під тим самим робочим каталогом,
1. >> імпорт helloworld
# якщо у вас є змінна x , ви можете її надрукувати в IDLE.
>> helloworld.x
# якщо у вас є функція func , ви також можете назвати її так.
>> helloworld.func ()
2. >> runfile ("./ helloworld.py")
helloworld.py
виглядає?