Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Python脚本在解释文件时截断文件后仍然运行?_Python_Python 2.7 - Fatal编程技术网

为什么Python脚本在解释文件时截断文件后仍然运行?

为什么Python脚本在解释文件时截断文件后仍然运行?,python,python-2.7,Python,Python 2.7,如果我编写了一个python脚本(比如test.py),其中我编写了打开test.py并截断它的代码,那么解释器是如何运行该脚本的 我在《如何像计算机科学家一样思考》一书中读到 解释器读取高级程序并执行它,这意味着它按照程序所说的去做。它一次处理一点程序,交替读取行和执行计算 那么,即使在几分钟前截断脚本之后,解释器如何运行脚本呢 代码如下: from sys import argv script, filename = argv print "We're going to erase %r

如果我编写了一个python脚本(比如test.py),其中我编写了打开test.py并截断它的代码,那么解释器是如何运行该脚本的

我在《如何像计算机科学家一样思考》一书中读到

解释器读取高级程序并执行它,这意味着它按照程序所说的去做。它一次处理一点程序,交替读取行和执行计算

那么,即使在几分钟前截断脚本之后,解释器如何运行脚本呢

代码如下:

from sys import argv

script, filename = argv

print "We're going to erase %r." % filename
print "If you don't want that, hit CTRL-C (^C)."
print "If you do want that, hit RETURN."
raw_input("?")

print "Opening the file..."
target = open(filename, 'w')
print "Truncating the file Goodbye!"
target.truncate()

print "Now I'm going to ask you for three lines"

line1 = raw_input("line 1: ")
line2 = raw_input("line 2: ")
line3 = raw_input("line 3: ")

print "I'm going to write these to the file."
target.write(line1 + "\n" + line2 + "\n" + line2 + "\n")

很少有现代口译员是这样工作的。特别是,Python实际上将源Python编译成字节码,然后执行该字节码而不回顾Python源代码本身。

很少有现代解释器以这种方式工作。特别是,Python实际上将源Python编译成字节码,然后执行该字节码而不回顾Python源代码本身。

很少有现代解释器以这种方式工作。特别是,Python实际上将源Python编译成字节码,然后执行该字节码而不回顾Python源代码本身。

很少有现代解释器以这种方式工作。特别是,Python实际上将源Python编译成字节码,然后执行该字节码,而不必回顾Python源代码本身。

如果您曾经在进行更改时打开记事本运行批处理(cmd.exe)程序。。你可能会很高兴有这样的阶段分离。我很少看到更令人困惑的错误消息代码:}如果您曾经在进行更改时打开记事本运行批处理(cmd.exe)程序。。你可能会很高兴有这样的阶段分离。我很少看到更令人困惑的错误消息代码:}如果您曾经在进行更改时打开记事本运行批处理(cmd.exe)程序。。你可能会很高兴有这样的阶段分离。我很少看到更令人困惑的错误消息代码:}如果您曾经在进行更改时打开记事本运行批处理(cmd.exe)程序。。你可能会很高兴有这样的阶段分离。我很少看到更令人困惑的错误消息代码:}请看-“解释器是一个直接执行[源代码]的计算机程序,即执行用编程或脚本语言编写的指令,而之前没有[明确地]将它们编译成机器语言程序。”然后列出不同的常见实现场景。本书中使用的语言具有误导性且不完全合格。请参阅-“解释器是一种直接执行[源代码]的计算机程序,即执行用编程或脚本语言编写的指令,而事先未[明确]将其编译为机器语言程序。”然后列出不同的常见实现场景。本书中使用的语言具有误导性且不完全合格。请参阅-“解释器是一种直接执行[源代码]的计算机程序,即执行用编程或脚本语言编写的指令,而事先未[明确]将其编译为机器语言程序。”然后列出不同的常见实现场景。本书中使用的语言具有误导性且不完全合格。请参阅-“解释器是一种直接执行[源代码]的计算机程序,即执行用编程或脚本语言编写的指令,而事先未[明确]将其编译为机器语言程序。”然后列出不同的常见实现场景。书中使用的语言具有误导性,而且没有完全限定。