python模块—command and sys

简介:

1.commands模块

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


1)getoutput()

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


例子

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命令执行的结果


例子

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]:第二个参数,传入的第一个参数


例子

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 ),或者以非标准的方式处理它们


例子1:sys.stdout与print

import sys

sys.stdout.write("hello""\n")

print("hello")


结果:

hello

hello


例子2:sys.stdin与raw_input

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: 控制台重定向文件

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是正常退出,其他为异常)


例子

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)后面的内容就不会执行了,因为程序已经退出










本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/1980367,如需转载请自行联系原作者
目录
相关文章
|
3天前
|
Shell Python
python中模块对象__file__
【6月更文挑战第12天】
15 8
|
2天前
|
JSON Java API
Python教程:一文了解Python requests模块
Python 中的 requests 模块是一个简洁而强大的 HTTP 库,用于向 Web 服务器发送 HTTP 请求和处理响应。它让开发者能够更轻松地与网络资源进行交互,包括发送 GET、POST、PUT、DELETE 等类型的请求,并处理返回的数据。
20 6
|
2天前
|
Python
Python中的模块对象__package__
【6月更文挑战第13天】
12 5
|
2天前
|
存储 Python
Python中的模块对象__dict__
【6月更文挑战第13天】
12 4
|
3天前
|
存储 程序员 Python
python中模块对象__doc__
【6月更文挑战第12天】
11 5
|
2天前
|
测试技术 Python
Python教程:利用timeit模块对代码进行性能测试
在Python中,了解代码的性能是优化和改进的关键。timeit模块是Python标准库中的一个工具,用于测量代码片段的执行时间。本文将介绍timeit模块的各种接口、命令行使用方法以及如何对代码中的函数或类进行性能测试。
9 3
|
1天前
|
定位技术 Python
Python的try、except异常处理模块使用方法
所以,我们就解决了由于可能具有的arcpy.ExecuteError异常而导致的程序中断问题;大家在实际使用时,按照自己程序中可能出现的报错类,对本文出现的arcpy.ExecuteError异常类加以修改即可。
|
2天前
|
Python
Python中的模块对象__path__
【6月更文挑战第13天】
6 2
|
3天前
|
开发者 Python
Python基础第八篇(Python异常处理,模块与包)
Python基础第八篇(Python异常处理,模块与包)
|
3天前
|
Unix Shell Python
Python教程:开箱即用的Python os模块知识
注:文末有福利小工具源码 Python 的 os 模块提供了许多接口用于与操作系统进行交互,包括文件操作、目录操作、路径操作、环境变量操作、系统信息获取等
12 1