Я пытаюсь запустить скрипт в Python3 с помощью функции exec().Использование функции «exec» для запуска скрипта в оболочке интерпретатора
Я изучаю Python с книгой «Learning Python», O'Reilly 5th Edition. В "Глава 2 Как Python Запуск программ" есть способ нравится:
>>> exec(open('script1.py').read())
Это мой файл script1.py
# A first script in python.
import sys
print(sys.platform)
print(2 **100)
x = 'Spam!'
print(x * 8)
input()
Ожидаемый результат:
win32
1267650600228229401496703205376
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
В работе я могу использовать только WinXP :-(
Но реальный выход в Python3 равен:
>>> exec(open('script1.py').read())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
# A first script in python.
^
SyntaxError: invalid character in identifier
>>>
И выход в python2 является:
>>> exec(open('script1.py').read())
win32
1267650600228229401496703205376
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 7, in <module>
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
>>>
Я не понимаю, почему это не работает, как говорится в книге.
Чтобы быть точным, символ _incorrect_, вероятно, является спецификацией. – devnull
@Igor Chubin - это символ char. Я использовал Notepad ++ для его создания и кодирования в UTF-8. Я изменил кодировку на UTF-8 без спецификации и сохранил ее. Теперь, это работает! Спасибо, парень, и @devnull тоже! – Trimax
@Trimax: Да, гипотеза была правильной. Проверьте мое обновление. –