使用'exec'函数在解释器Shell中运行脚本

Trimax

我尝试通过exec()函数在Python3中运行脚本。

我正在用O'Reilly第5版的“学习Python”这本书来学习Python。在“第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
>>>

我不明白为什么这不像书中所说的那样起作用。

伊戈尔·楚宾(Igor Chubin)

问题出在您的编辑器中,该编辑器在文件的开头添加了“不正确的符号”(实际上,该符号本身是正确的)。请检查一下。

如果您想检查这个猜想,请执行

print open('script1.py').read(1)

在python repl中。

它可能是文件中的BOM(感谢@devnull)。

如果是这样,您可以使用encondig打开文件utf-8-sig

 open('script1.py', encoding='utf-8-sig')

有关更多信息,您可以在这里阅读:

什么是BOM(字节顺序标记),您可以在此处找到:

当然,将来您必须避免在脚本中使用BOM。请检查编辑器的设置,并确保在保存脚本时不会创建BOM。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用exec从Docker容器上的主机运行脚本

来自分类Dev

使用exec来长时间运行脚本

来自分类Dev

为什么某些Linux Shell脚本使用exec运行命令?

来自分类Dev

在脚本中使用find -exec

来自分类Dev

PHP使用exec运行curl

来自分类Dev

使用内置的Bash运行`exec`

来自分类Dev

使用exec()从PHP运行PhantomJS

来自分类Dev

使用 PHP exec() 运行 AT 命令

来自分类Dev

当 PHP 中的 shell_exec() 执行脚本时,Python open() 函数不起作用

来自分类Dev

使用pam_exec.so以root身份运行脚本时,脚本无法在登录时运行

来自分类Dev

尽管成功使用解释器,但无法从函数中使用exec动态导入

来自分类Dev

如何使用exec:java而不是exec:exec在Maven中运行JMH基准?

来自分类Dev

使用-exec的find命令不会运行-exec命令

来自分类Dev

使用-exec的find命令不会运行-exec命令

来自分类Dev

php-使用shell_exec运行shell命令

来自分类Dev

在bash脚本中使用shell字符串和参数运行docker exec命令

来自分类Dev

运行for循环以在类内部,函数内部使用exec创建函数

来自分类Dev

使用execv和shell exec的问题

来自分类Dev

使用 shell_exec git pull

来自分类Dev

无法使用ant exec任务运行bash脚本

来自分类Dev

使用Runtime.exec(...)运行dpm

来自分类Dev

使用exec()编译和运行ac程序

来自分类Dev

使用多个命令运行iocage exec

来自分类Dev

使用php exec运行youtube-dl

来自分类Dev

如何使用docker exec运行源代码?

来自分类Dev

使用exec()编译和运行ac程序

来自分类Dev

编写Shell-使用system()或exec()运行命令?

来自分类Dev

使用find函数和exec标志

来自分类Dev

在函数内部使用exec设置变量

Related 相关文章

热门标签

归档