python的os写终端命令_python笔记16-执行cmd指令(os.system和os.popen)

os.system

1.如果想在cmd执行python脚本,可以直接用如下指令

python [xx.py绝对路径]

比如我写了个hello.py的脚本,在脚本里面写入内容:print("hello world!"),放到d盘目录路径为:d:\hello.py

2.os.system用来执行cmd指令,在cmd输出的内容会直接在控制台输出,返回结果为0表示执行成功

注意:os.system是简单粗暴的执行cmd指令,如果想获取在cmd输出的内容,是没办法获到的

os.popen

1.如果想获取控制台输出的内容,那就用os.popen的方法了,popen返回的是一个file对象,跟open打开文件一样操作了,r是以读的方式打开

# coding:utf-8

import os

# popen返回文件对象,跟open操作一样

f = os.popen(r"python d:\hello.py", "r")

d = f.read() # 读文件

print(d)

print(type(d))

f.close()

2.执行结果:

注意:os.popen() 方法用于从一个命令打开一个管道。在Unix,Windows中有效

实例

1.前面对os.popen的方法有了初步了了解了,接下来就运用到实际操作中吧!

在app自动化的时候,经常用到指令:adb devices来判断是否连上了手机,那么问题来了,如何用python代码判断是否正常连上手机?

adb devices

2.代码参考:

# coding:utf-8

import os

# popen返回文件对象,跟open操作一样

f = os.popen(r"adb devices", "r")

shuchu = f.read()

f.close()

print(shuchu) # cmd输出结果

# 输出结果字符串处理

s = shuchu.split("\n") # 切割换行

new = [x for x in s if x != ''] # 去掉空''

print(new)

# 可能有多个手机设备

devices = [] # 获取设备名称

for i in new:

dev = i.split('\tdevice')

if len(dev)>=2:

devices.append(dev[0])

if not devices:

print("手机没连上")

else:

print("当前手机设备:%s"%str(devices))

python自动化交流 QQ群:779429633

python os.system()和os.popen()

1>python调用Shell脚本,有两种方法:os.system()和os.popen(),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容.>>>hel ...

python(45)内置函数:os.system() 和 os.popen()

os.system() 和 os.popen() 概述 os.popen() 方法用于从一个命令打开一个管道. 在Unix,Windows中有效 语法 popen()方法语法格式如下: os.pope ...

调用系统命令 os.system()和os.popen()

Python中os.system和os.popen区别 Python调用Shell,有两种方法:os.system(cmd)或os.popen(cmd)脚本执行过程中的输出内容.实际使用时视需求情况而 ...

Python中os.system和os.popen区别

Python调用Shell,有两种方法:os.system(cmd)或os.popen(cmd)脚本执行过程中的输出内容.实际使用时视需求情况而选择. 两者的区别是: os.system(cmd)的返 ...

Python os.system 和 os.popen的区别

(1) os.system # 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 system(command) -> exit_statusExecute the command ...

devi into python 笔记(五)异常 文件操作 sys os glob模块简单实用

异常: Java异常: try catch块处理异常,throw引发异常. Python异常: try except块处理异常,raise引发异常. 异常如果不主动处理,则会交给Python中的缺省处 ...

java调用执行cmd指令启动weblogic

这里的例子是启动weblogic import java.io.BufferedReader; import java.io.IOException; import java.io.InputStre ...

python笔记16

1.今日内容 模块基础知识 time/datetime json/picle shutil logging 其他 2.内容回顾和补充 2.1模块(类库) 内置 第三方 自定义 面试题: 列举常用内置模 ...

os.system和os.popen

使用os.popen调用test.sh的情况: python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执 ...

随机推荐

Oracle补习班第三天

In every triumph, there's a lot of try. 每个胜利背后都有许多尝试 Oracle管理实例组件 主要组件分为两部分例程,与数据库: 例程分为两部分SGA跟进程: S ...

hdu 5713(状态压缩DP)

要进行两次dp, 第一个,dp[i],1<=i<=(1<

如何利用Python实现自动打卡签到

需求描述 我们需要登录考勤系统(网页端,非手机端)进行签到,如果不想每天都早早起来打卡签到,就可以通过写程序实现这一功能. 业务梳理 通过长时间的早起打卡签到发现规律,我每天只是不停的点击,签到,都是 ...

【十四】jvm 性能调优实例

实例1: POI Excel 导出 Excel对象很大,多人同时登录系统导出Excel的话,就会有多个大Excel对象到老年代,这是老年代需要回收,系统可能会卡顿. jvm堆内存设置的越大,Full ...

python 中字符串的格式化

# 字符串格式化name = input("name:")age = int(input("age:"))job = input("job:&quot ...

【Mybatis】XML配置实现增删改查

①创建数据库和表,数据库为mytest,表为users CREATE DATABASE mytest; USE mytest; DROP TABLE IF EXISTS users; CREATE T ...

MySQL学习分享--Thread pool实现

基于对Thread pool架构设计的详细了解,本文主要对Thread pool的实现进行分析,并根据Mariadb和Percona提供的开 ...

使用setsid替代nohup

使用setsid替代nohup 使用 nohup 执行sudo -e时会有问题的.

Redis AOF 全持久化

简介: Redis AOF 持久化,将每次接收到更改 redis 数据的操作都记录到一个 aof 文件,当服务器意外宕机或 redis 服务器非法关闭时,不会丢失数据. 可以做到数据安全化,但是性能会 ...

vue-resource基础介绍

1.vue-resource 的请求api是按照rest风格设计的,它提供了7种请求api get(url, [data], [options]); head(url,[data],[options] ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值