python中的 怎么用_Python中如何调用Linux命令

本文介绍如何使用Python的os和commands模块进行系统命令的调用及文件处理,包括读取目录、执行命令并获取输出等内容。同时提供两种方法来读取Linux系统中的用户信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、使用os模块

In [1]: import os #导入os模块

In [2]: os.system('ls')

anaconda-ks.cfg

epel-release-7-5.noarch.rpm

ipython-4.1.2ipython-4.1.2.tar.gz

pip-8.1.2pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gzOut[2]: 0

In [3]: a=os.system('ls') ##得到的是执行的命令的返回值,并不是执行结果anaconda-ks.cfg

epel-release-7-5.noarch.rpm

ipython-4.1.2ipython-4.1.2.tar.gz

pip-8.1.2pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gzIn [4]: a #执行ls命令的返回值,成功,为0Out[4]: 0

In [5]: b=os.popen('ls').readlines() #将得到的结果直接赋值给b列表In [6]: b #ls执行结果输出到内存,再全部读取赋值给b列表Out[6]:

['anaconda-ks.cfg\n','epel-release-7-5.noarch.rpm\n','ipython-4.1.2\n','ipython-4.1.2.tar.gz\n','pip-8.1.2\n','pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gz\n']

>>>os模块中常见方法(Linux命令)

os.remove():删除文件

os.rename():重命名文件

os.walk():生成目录树下的所有文件名

os.chdir():改变目录

os.mkdir/makedirs:创建目录/多层目录

os.rmdir/removedirs:删除目录/多层目录

os.listdir():列出指定目录的文件

os.getcwd():取得当前工作目录

os.chmod():改变目录权限

os.path.basename():去掉目录路径,返回文件名

os.path.dirname():去掉文件名,返回目录路径

os.path.join():将分离的各部分组合成一个路径名

os.path.getsize():返回文件大小

os.path.exists():是否存在

os.path.isabs():是否为绝对路径

os.path.isdir():是否为目录

os.path.isfile():是否为文件

二、使用commands模块

注意:该模块用于Python2,到了Python3不推荐使用

In [7]: import commands #导入commands模块In [8]: c=commands.getoutput('ls') #ls命令执行结果,字符串形式赋值给c变量In [9]: c

Out[9]: 'anaconda-ks.cfg\nepel-release-7-5.noarch.rpm\nipython-4.1.2\nipython-4.1.2.tar.gz\npip-8.1.2\npip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gz'In [10]: d=c.split('\n') #对变量c,指定分隔符\n分隔,列表形式赋值给dIn [11]: d

Out[11]:

['anaconda-ks.cfg','epel-release-7-5.noarch.rpm','ipython-4.1.2','ipython-4.1.2.tar.gz','pip-8.1.2','pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gz']

三、read、readline、readlines区别

1、read()全部取出,放到字符串里

2、readline()方法会将内存空间里的内容一次性只读一行,放到一个字符串里

3、readlines()方法会将内存空间里的内容一次性全部取出来,放到一个列表里

1113510-20170615193532275-30262031.png

四、Python脚本实践

1、编写一个python脚本实现输出linux里的所有的用户的信息,格式如下:

username is root uid is 0

username is xiaojin uid is 200

username is bin uid is 10

方式一:

#!/usr/bin/python

importcommands

user_str=commands.getoutput('cat /etc/passwd')

user_list=user_str.splitlines()  #列表形式分隔文件内容(默认按行分隔)

for i inuser_list:

u_info=i.split(':')print "username is",u_info[0],"uid is",u_info[2]

方式二:

#!/usr/bin/python

importos

userlines=os.popen("cat /etc/passwd").readlines()for i inuserlines:

user_info=i.split(":")print "username is",user_info[0],"\tuid is",user_info[2]

2、数值脚本

1.提醒用户输入内容范围是0-100

2.判断用户输入的内容,如果不是数字给予提醒

3.输出用户输入的内容

#!/usr/bin/pythonu_grade=raw_input("please input your grade:")if u_grade.isdigit():  #isdigit()将字符串转换成数的方法

if 0<=int(u_grade)<=100:print "your grade is",u_gradeelse:print "please input the range of number 0-100"

else:print "It's not a valid number,try again"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值