【问题标题】:how to write into a windows command window from python如何从python写入Windows命令窗口
【发布时间】:2011-08-07 20:34:04
【问题描述】:

我正在使用 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

感谢您的帮助

【问题讨论】:

  • 为什么需要这样做? os.chdir("C:\\..")还不够吗?

标签: python windows window command python-2.6


【解决方案1】:

您的第一次尝试是正确的,只是您调用的是模块而不是新实例化的类。你需要使用

proc.communicate('cd Documents')

【讨论】:

  • 非常感谢您的回答。如果我这样做,我将不再收到错误消息。但是,如果我正在写这个,无论文件是否存在,窗口都会关闭。写完第一行后,命令窗口上也不会出现任何内容
【解决方案2】:

您的第三次试用:

 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

【讨论】:

    猜你喜欢
    • 2016-03-31
    • 1970-01-01
    • 2012-09-26
    • 2017-10-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 2020-04-02
    相关资源
    最近更新 更多