当前位置: 首页 > 面试题库 >

python中os.execl()和os.execv()之间的区别

全心思
2023-03-14
问题内容

python中的os.execl()和os.execv()之间有区别吗?我在用

os.execl(python, python, *sys.argv)

重新启动我的脚本(从此处开始)。但这似乎是从上一个脚本离开的地方开始的。

我希望脚本在重新启动时从头开始。请问这

os.execv(__file__,sys.argv)

做这份工作?从这里命令和想法。我从python帮助/文档中找不到它们之间的区别。有没有办法彻底重启?

有关我要做什么的更多背景信息,请参阅其他问题


问题答案:

在底层,他们做同样的事情:用一个新的进程替换正在运行的进程映像。

和之间的 唯一
区别是它们采用参数的方式。需要一个参数列表(第一个参数应该是可执行文件的名称),而需要一个变量列表。execv``execl``execv``execl

因此,从本质上讲,execv(file, args)等同于execl(file, *args)

请注意,这sys.argv[0]已经是脚本名称。但是,这是传递给Python的脚本名称,可能不是程序在其下运行的实际脚本名称。为了正确和安全,传递给的参数列表exec*应为

['python', __file__] + sys.argv[1:]

我刚刚使用以下命令测试了重启脚本:

os.execl(sys.executable, 'python', __file__, *sys.argv[1:])

而且效果很好。确保您没有忽略或默默捕获任何错误execl-如果执行失败,您将“继续从上次中断的地方开始”。



 类似资料:
  • 本文向大家介绍C和Python之间的区别,包括了C和Python之间的区别的使用技巧和注意事项,需要的朋友参考一下 C和Python都是主要使用的编程语言。各种特性使它们在程序设计领域流行。根据这些特征,我们可以区分C和Python。 以下是C和Python之间的重要区别。 序号 键 C语言 Python语言 定义 Python是一种通用的解释型,交互式,面向对象的高级编程语言。 类型 另一方面,

  • 本文向大家介绍Python和Bash之间的区别,包括了Python和Bash之间的区别的使用技巧和注意事项,需要的朋友参考一下 Python Python是一种编程语言,旨在易于实现和易于理解。它是一种动态类型的语言。它不使用指针。 重击 Bash是命令行解释器,默认情况下在Linux和MacOS操作系统中提供。它也可以安装在其他操作系统中。它是Linux和MacOS的默认用户外壳程序。 以下是P

  • 问题内容: 我可以给模块中的变量赋值吗?如果是,则类和模块之间有什么区别? PS:我是一个Java专家(以防它有助于解释)。谢谢。 问题答案: 模块 : 模块是包含Python定义和语句的文件。 正如医生所说。 因此,python中的模块只是组织代码的一种简单方式,它包含python类或仅包含函数。如果您在项目中需要这些类或函数,则只需它们。例如,python中的模块仅包含一堆函数,而您只需调用所

  • 问题内容: 我有两个字符串数组: S1和S2有什么区别?只是他们持有不同长度的条目吗? 如果我的数组具有 不同长度的 字符串怎么办? 在哪里可以找到所有可能的dtype的列表及其含义? 问题答案: 请参阅文档。 的和字符串是数据类型描述符; 第一个表示数组保存长度为1的字符串,第二个表示长度为2的字符串。竖线符号是字节顺序标志;在这种情况下,不需要字节顺序标志,因此将其设置为,表示不适用。

  • 问题内容: 我早就做了一些Python。但是,现在我要转向Java。我想知道Python“自我”方法和Java“ this”之间是否有任何区别。 我知道“自我”不是关键字,而“这个”则不是。这几乎就是我能想到的。我还有什么想念的吗? 问题答案: 关于Python): 您需要使用 self 的原因。这是因为Python不使用@语法来引用实例属性。Python决定以一种使该方法所属的实例自动传递但不会

  • 问题内容: 和有什么不一样? 问题答案: 默认的实现是无用的(很难想象有一个不是,但是是的) 目标是明确 目标是可读性 容器的 使用包含的对象repr 默认实现是没有用的 这主要是令人惊讶的,因为Python的默认设置往往相当有用。但是,在这种情况下,具有默认值的行为如下: 太危险了(例如,如果对象之间互相引用,则很容易陷入无限递归)。因此,Python应对了。请注意,有一个默认值为true:如果

  • 问题内容: 有没有之间的差异,并在Python? (我希望会有区别,因为否则会破坏“一种方法”的原则… :) 问题答案: Python对象将其实例变量存储在属于该对象的字典中。返回此字典(与一样)。另一方面,返回的字典,其中包含“属性,其类的属性以及递归其类的基类的属性”。 当您使用点运算符访问对象的属性时,python所做的不仅仅是在该对象字典中查找该属性。一个常见的情况是when是类的对象,您

  • 问题内容: 和Python和有什么不一样? 我尝试环顾四周,但没有在这些线上找到具体问题。如果已经回答,则链接就足够了。 问题答案: 0和1是退出代码。 意味着干净出口,没有任何错误/问题 表示存在一些问题/错误/问题,这就是程序退出的原因。 这不是特定于Python的,非常普遍。非零退出代码被视为异常退出,有时,错误代码指示问题所在。错误代码为零表示成功退出。 这对于其他程序,shell,调用方