前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python模块—command and

python模块—command and

作者头像
py3study
发布于 2020-01-08 03:06:18
发布于 2020-01-08 03:06:18
49900
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

1.commands模块

linux系统环境下用于支持shell的一个模块

1)getoutput()

  返回值只有返回结果(字符串类型),没办法判断执行结果是否正常

例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import commands
cmd = "ls /data/temp"
result1 = commands.getoutput(cmd)
print(type(result1))                   # 类型为str
print(result1)
结果:
<type 'str'>

2.py

2)getstatusoutout()

  返回结果是一个tuple元组,第一个值为接收状态码,int类型,0表示正常,非0表示异常;第二个值为字符串,即shell命令执行的结果

例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import commands
cmd = "ps -ef"
status,result2 = commands.getstatusoutput(cmd)
print(type(status))
print(status)
print(type(result2))
print(result2)
结果:
<type 'int'>
0
<type 'str'>
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 Oct09 ?        00:00:14 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root          2      0  0 Oct09 ?        00:00:00 [kthreadd]

2.sys模块

1)通过sys模块获取程序参数

sys.argv[0]:第一个参数,脚本本身

sys.argv[1]:第二个参数,传入的第一个参数

例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sys
print("argv[0]={0}   argv[1]={1}".format(sys.argv[0],sys.argv[1]))
结果:
argv[0]=C:/Users/test/PycharmProjects/a/a1.python.py    argv[1]=parameter1

2)sys.stdin、sys.stdout、sys.stderr

  stdin、stdout、stderr 变量包含与标准I/O流对应的流对象。如果需要更好地控制输出,而print 不能满足你的要求,你也可以替换它们,重定向输出和输入到其它设备( device ),或者以非标准的方式处理它们

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
例子1:sys.stdout与print
import sys
sys.stdout.write("hello"+ "\n")
print("hello")
结果:
hello
hello

例子2:sys.stdin与raw_input

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sys
name1 = raw_input("input your name: ")
print(name1)
print 'stdin_your_name: ',        # command to stay in the same line
name2 = sys.stdin.readline()[:-1]     # -1 to discard the '\n' in input stream
print(name2)
结果:
input your name: huangzp
huangzp
stdin_your_name: huangzp
huangzp

例子3: 控制台重定向文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sys
f_hander = open("out.log","w")
sys.stdout = f_hander
print("hello")

结果:

本地生成一个out.log文件,内容为hello

3)捕获sys.exit(n)调用

  执行到主程序末尾,解释器自动退出,但如需中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。(0是正常退出,其他为异常)

例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sys
def exitfunc():
 print "hello world"
sys.exitfunc = exitfunc   # 设置捕获时调用的函数
print "start"
sys.exit(1)               # 退出自动调用exitfunc()后,程序退出
print "end"             # 不会执行print
结果:
start
hello world

说明:

  设置sys.exitfunc函数,及当执行sys.exit(1)的时候,调用exitfunc函数;sys.exit(1)后面的内容就不会执行了,因为程序已经退出

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档