python调用cmd命令并在新提示符下输入命令

yesong_zhang 2018-08-29 01:16:32
我要在cmd下运行磁盘管理程序diskpart.exe并检查其返回信息, 怎么用python实现,比如我要实现下面功能:
1. 调用cmd窗口并输入"diskpart",返回信息为"DISKPART>"
2. 检查字符串"DISKPART>",然后在这个提示符后面输入命令'list disk',返回当前电脑的所有磁盘信息,包括插入的一个8G的sd卡
3. 检查返回的所有磁盘的名称和容量,检测到其中某个磁盘容量为8G,比如是磁盘1.
4. 继续在"DISKPART>"后输入"select disk 1", 选中磁盘1.
谢谢.
...全文
1680 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程驴子 2018-09-09
  • 打赏
  • 举报
回复
subprocess.Popen
可以处理命令的返回值、stdout、stderr。

import subprocess
p=subprocess.Popen(
‘ls .vim*’,# 待执行的命令
shell=True,# 使用shell
stderr=subprocess.PIPE,# 执行命令后的报错,送到pipe(默认打印到stderr)
#可以通过p.stderr访问该pipe内容;
stdout=subprocess.PIPE,# 执行命令后的输出,送到pipe(默认打印到stdout)
#可以通过p.stdout访问该pipe内容
)

建议使用communicate()等待子进程结束,不会死锁。
print(p.returncode) # None,表示子进程还未结束
b_stdout, b_stderr = p.communicate() # 等待子进程结束,返回bytes
print(p.returncode) # 0,表示子进程正常退出


for s_line in b_stdout.decode().strip().split(‘\n’)
print(s_line)

for s_line in b_stderr.decode().strip().split(‘\n’)
print(s_line)
ForestDB 2018-09-07
  • 打赏
  • 举报
回复
pexpect了解下
yesong_zhang 2018-09-06
  • 打赏
  • 举报
回复
顶一下,为什么python人气不旺啊。
yesong_zhang 2018-08-31
  • 打赏
  • 举报
回复
求大侠,,高手,,
yesong_zhang 2018-08-30
  • 打赏
  • 举报
回复
引用 2 楼 qq_26877377 的回复:
python 有一个 os.system 你可以百度一下,


os.system好像不能返回字符串信息,只能返回成功或者失败的标志?另外进入DISKPART>后怎么在提示符下继续输入字符串命令好像我也没查到.
  • 打赏
  • 举报
回复
python 有一个 os.system 你可以百度一下,
yesong_zhang 2018-08-30
  • 打赏
  • 举报
回复
有大侠解救一下吗,谢谢.

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧