python调用cmd、shell

python调用linux shell和windows cmd的方式基本相同,整理了以下几种方法:

方式一:os模块的system方法

system方法将输入参数转化为命令在计算机上运行,其在执行过程中会开启一个子进程在系统上执行命令。
需要注意的几点:

  1. 父进程的环境变量会默认传递到子进程中

  2. 子进程无法影响父进程中的环境变量

  3. 使用system方法,子进程的某些操作无法影响主进程,例如执行os.system(‘cd …’)后主进程工作目录并不会发生改变。

  4. os.system()调用系统命令,返回结果是命令执行状态(16为二进制数),返回0表示成功,其他值请参阅OS error code

  5. os.system()函数通常会阻塞它的调用者,直到所启动的命令行程序退出。
    语法为os.system(‘Command’)

import os
# 调用 linux shell
os.system('touch a.txt;touch b.txt')#新建文件
# 调用 windows cmd
os.system('type NUL > b.txt'#新建文件
方式二:os模块的popen方法

os.popen()方法是通过管道pipe方式实现的,函数返回值为一个已打开的文件描述符为fd的文件对象,内容为脚本输出的信息。
需要注意的几点:

  1. 非阻塞,与os.system方法不同,os.popen方法不会阻塞主进程,不会等待cmd命令执行完毕就会继续执行后面的代码(除非后面遇到要用到它的返回值的情况才会阻塞)
  2. 返回值是文件对象,意味着可以像对待普通文件一样对待它的返回值,由于返回的是已打开的对象,用完后一定要记得关闭文件对象
    定义为:def popen(cmd, mode=“r”, buffering=-1):
import os
# 调用 linux shell
with os.popen('cat a.txt') as f:
	f=f.read()#f 是文件,文件操作都可以用
os.popen('ls')
# 调用 windows cmd
with os.popen
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值