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

使用python运行Windows Shell命令

朱鹤轩
2023-03-14
问题内容

我们如何使用Python与OS Shell交互?我想通过python运行Windows cmd命令。如何实现?


问题答案:

较新的subprocess.check_output和类似的命令应该替换os.system。有关详情,请参见此页面。尽管我无法在Windows上进行测试(因为我无权访问任何Windows计算机),但以下方法应该可以工作:

from subprocess import check_output
check_output("dir C:", shell=True)

check_output返回命令的输出字符串。或者,subprocess.call仅运行命令并返回命令状态(如果一切正常,通常为0)。

另请注意,在python 3中,现在bytes输出了该字符串输出。如果要将其更改为字符串,则需要类似

from subprocess import check_output
check_output("dir C:", shell=True).decode()

如有必要,您可以告诉它对程序输出进行编码的方式。默认值为utf-8,通常可以正常使用,但是其他标准选项在此处。

还要注意,@bluescorpion在注释中表示Windows 10需要结尾的反斜杠,如中所示check_output("dir C:\\", shell=True)。需要双反斜杠,因为它\是python中的特殊字符,因此必须转义。(还要注意,即使是字符串的最后一个字符,即使在字符串前加上前缀r也无济于事\-r"dir C:\"是语法错误,但r"dir C:\ "不是)。



 类似资料:
  • 问题内容: 我尝试运行此脚本: 现在的问题是:我怎样才能把这些变量,,到变量? 问题答案: Python有很多执行字符串格式化的方法。最简单的方法之一就是将字符串的各个部分简单地串联在一起:

  • 问题内容: 我需要从python运行此linux命令,并将输出分配给变量。 我试过使用pythons命令库来做到这一点。 但是a结束了。我得到的输出是: 但预期的输出是: 有人知道如何阻止输出中断吗?有人可以建议其他方法吗? 问题答案: 显然限制了其输出以适合终端的假定宽度。您可以使用环境变量或选项覆盖此宽度。 该模块已弃用。使用得到的输出,并在Python进行过滤。不要按照其他答案的建议使用,在

  • 问题内容: 我创建了以下名称为的命令文件: 当我从命令行运行上述脚本时: 它运行成功。 但是,当我在python中尝试以下操作时: 我得到错误: 问题答案: 您的命令将像这样运行WinSCP: 什么是无效的语法。。之后不能有空格。 这应该工作:

  • 问题内容: 我运行一个包含此行的python脚本 然后,我在服务器上运行相同的代码,并收到以下错误消息 因此,我要做的就是print bashCommand在运行之前,在终端中插入一个比命令更清晰的信息os.system()。 当然,我再次收到错误(由引起os.system(bashCommand)),但是在该错误出现之前,它会在终端中打印命令。然后我只是复制了输出,然后将复制粘贴到终端中,然后按

  • 问题内容: 我知道可以从命令行使用以下命令调试Python脚本 如果是打算与一起运行的脚本。 但是,python模块应与一起运行。即使包含相对导入的脚本也应使用来运行。如何在的控制下运行?以下 无效 : 问题答案: 您现在无法执行此操作,因为会终止选项列表 这意味着 mod的 工作是解释其余的参数列表,而这种行为完全取决于 mod 在内部的设计方式以及它是否支持另一个 -m 让我们看看里面有什么发

  • 我正在运行最新版本的Mac OS,我想通过命令行工具运行android模拟器。我在Mac终端上运行了以下命令,得到了以下错误。 我还使用以下可用选项运行命令,这些选项也可以在官方文档developer.android.com上找到 我需要做什么,这样我就不需要每次都打开Android Studio而只打开模拟器。

  • 问题内容: 我试图打开一个终端并在其中运行命令。我在用 这将打开一个新的终端,但是命令不会执行。 问题答案: 该命令将新运行的进程替换为新进程,因此,如果要在要运行的命令列表中有一个exec,则在exec运行后,其他任何命令都将不会运行。因此,您要替换为,然后在运行之后再执行任何操作。尝试以下方法: 或者如果您需要终端保持打开状态,请尝试以下操作: 如果您希望终端保持打开状态并处于bash she

  • 我想创建一个运行多个python项目的脚本。每个项目都是阻塞的(意味着每个项目都应该永远运行),所以这个脚本必须并行运行每个项目。此外,我希望在关闭主shell之后,所有这些进程都关闭。这是我想出的shell代码 我尝试使用&使python进程异步运行,但是脚本在第二行之后没有继续,只有第一个项目在运行。 有没有一种方法可以运行所有的python进程?