如何从Python写入Windows命令窗口

1 投票
2 回答
15215 浏览
提问于 2025-04-16 15:57

我正在使用Python 2.6。我想从Python中向命令窗口输入指令。我只需要找到正确的方法。不过为了说明问题,我展示了几个失败的尝试。以下是我几个尝试的结果和遇到的错误类型:

第一次尝试:

import subprocess
proc = subprocess.Popen('cmd.exe', stdin = subprocess.PIPE, stdout = subprocess.PIPE)
stdout, stderr = subprocess.communicate('cd Documents')
AttributeError: 'module' object has no attribute 'communicate'

第二次尝试:

import subprocess
proc = subprocess.Popen('cmd.exe', stdin = subprocess.PIPE, stdout = subprocess.PIPE)
proc.stdin.write("cd Documents")

没有错误信息,但什么也没发生。如果我尝试打开一个不存在的文件夹,结果也是一样。命令窗口保持空白。

第三次尝试:

os.system('cd Documents')

什么也没发生,返回了1,不过如果我尝试打开一个不存在的文件夹,结果也返回1:

os.system('cd Documentss')

最后一次尝试:

a=os.popen("C:\\system32\\cmd.exe",'w')
a.write("cd Documents")
IOError: [Errno 22] Invalid argument

谢谢你的帮助。

2 个回答

1

你的第三次尝试:

 os.system('your command')

成功了。我用了这个,没问题:

os.system('ipconfig -renew') # Renew all connections windows

试试:

os.system('ipconfig -release') # you will disconnect from your network

然后使用:

os.system('ipconfig -renew') # network will back
3

你第一次尝试是对的,不过有一点需要注意,你调用的是模块,而不是你新创建的类。你需要使用

proc.communicate('cd Documents')

撰写回答