Python:无法运行命令行命令

时间:2019-11-19 10:52:52

标签: python command-line

我尝试在系统上运行几个简单的命令行命令,尽管代码运行了,但我看不到窗口的打开。

例如:

command = 'cmd'
os.system(command)

为什么我看不到我的cmd窗口?我在控制台窗口中看到的所有内容(我正在使用pycharm)是

Microsoft Windows [Version 10.0.18362.449]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\blabla\tmp>

我还尝试使用appium打开command line服务器,并且我有.bat文件调用appium(这是我放入.bat文件中的内容并且可以手动正常运行):

这是我的.bat文件的路径:

C:\tmp\scripts\start_appium.bat

命令

p = subprocess.Popen("start_appium.bat", cwd=r"C:\tmp\scripts")
stdout, stderr = p.communicate()

我收到了这个error

  

回溯(最近通话最近):文件    init 中的“ C:\ Python37 \ lib \ subprocess.py”行775       restore_signals,start_new_session)文件“ C:\ Python37 \ lib \ subprocess.py”,行1178,在_execute_child中       startupinfo)文件“ C:\ Program Files \ JetBrains \ PyCharm Community Edition 2019.2.4 \ helpers \ pydev_pydev_bundle \ pydev_monkey.py”,行   536,在new_CreateProcess中       返回getattr(_subprocess,original_name)(app_name,patch_arg_str_win(cmd_line),* args)FileNotFoundError:[WinError 2]   系统找不到指定的文件

2 个答案:

答案 0 :(得分:0)

您不需要使用python启动cmd窗口,也不能使用os.system()os.system()的基本操作是在系统控制台上运行命令。在Windows上是cmd,在Linux上是终端。使用命令os.system()只会得到命令的输出,而没有真正看到cmd窗口。

如果在python上运行命令os.system("cmd"),则打开cmd窗口并键入"cmd"时将得到相同的输出。该命令在两个程序中都返回Windows的版本。使用该功能,您可以使用python运行一些更有趣的cmd命令,例如os.system("ipconfig")os.system("ping www.example.com")

关于第二个问题,系统找不到文件的路径。这意味着您有错别字或路径不正确。 希望我能帮上忙!

答案 1 :(得分:0)

Python文档明确提到cwd参数不是搜索主管的目录。

  

如果cwd不为None,则子级的当前目录将在执行前更改为cwd。请注意,搜索可执行文件时不会考​​虑此目录,因此您无法指定程序相对于cwd的路径。

您可以在此处参考文档。 https://docs.python.org/2/library/subprocess.html#popen-constructor

还尝试这样的事情

import subprocess
p = subprocess.Popen("C:\tmp\scripts\start_appium.bat")