赞
踩
有时候我们需要从Python中执行Linux命令,下面就介绍几种方法?
1. os 模块:
1.1 os.system 函数:
system方法会创建子进程运行外部程序,方法只返回外部程序的运行结果。这个方法比较适用于外部程序没有输出结果的情况。
>>> os.system('echo \ "Hello World\"') # 直接使用os.system调用一个echo命令
Hello World
0>>> os.system("cat /proc/meminfo")
MemTotal:486640kB
MemFree:301184kB
Buffers:10304kB
Cached:58316kB
SwapCached: 0 kB
Active:43748kB
Inactive:45336kB
Active(anon):20476kB
Inactive(anon):520kB
Active(file):23272kB
Inactive(file):44816 kB
注意:上面说了,此方法只会外部程序的结果,也就是os.system的结果,所以如果你想接收命令的返回值,接着向下看
1.2 os模块的popen方法
当需要得到外部程序的输出结果时,本方法非常有用,返回一个类文件对象,调用该对象的read()或readlines()方法可以读取输出内容。
>>> print(os.popen('ls -lt')) # 是以一个类文件对象的形式
>>> print(os.popen('ls -lt').read())
总用量98drwxr-xr-x. 2 root root 4096 5月 19 04:26opt
dr-xr-x---. 3 root root 4096 5月 19 04:26root
drwxr-xr-x. 19 root root 3760 5月 19 04:22dev
drwxr-xr-x. 78 root root 4096 5月 19 04:22etc
drwxrwxrwt.7 root root 4096 5月 19 04:22tmp>>> print(os.popen('ls -lt').readlines())
readlines()是以列表的形式打印出来
2. commands 模块(在Python2.X中纯在Python3中就移除了,在Python 3.X 中 被 sudprocess 取代,这里就不怎么介绍command
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。