如何从Python写入Windows命令窗口

发布于 2024-11-02 05:16:17 字数 923 浏览 0 评论 0原文

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

没有错误消息,但没有任何反应。 Il 我尝试打开一个不存在的文件夹,我得到了同样的结果。命令窗口保持为空

第三次试验:

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

感谢您的帮助

I am using Python 2.6
I'd like to enter instructions into a command windows from python.
I just need the right method. However as an indication, I am showing several failed trials.
Here are several trials and the error types I get:

first trial

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'

Second trial:

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

No error message, however nothing happens. Il i try to open a folder that doesn't exist , I get the same thing. The command window stays empty

Third trial:

os.system('cd Documents')

Nothing happens , it returns 1, however if i try to open a folder that doesn't exist, it returns 1 too:

os.system('cd Documentss')

Last trial

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

Thanks for your help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜中书 2024-11-09 05:16:17

您的第一次试验是正确的,除了您正在调用模块而不是新实例化的类这一事实。您需要使用

proc.communicate('cd Documents')

Your first trial is correct, except for the fact that you're calling the module instead of your newly instantiated class. You need to use

proc.communicate('cd Documents')

完美的未来在梦里 2024-11-09 05:16:17

你的第三次尝试:

 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

Your third trial:

 os.system('your command')

works. I used and it's ok:

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

Try:

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

Then use:

os.system('ipconfig -renew') # network will back
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文