Python中如何呼叫Linux命令

2021-12-29 19:43:55 字數 3495 閱讀 6159

一、使用os模組

in [1]: import os #匯入os模組

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

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

out[2]: 0

in [3]: a=os.system('ls') ##得到的是執行的命令的返回值,並不是執行結果

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

in [4]: a #執行ls命令的返回值,成功,為0

out[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模組

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分隔,列表形式賦值給d

in [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()方法會將記憶體空間裡的內容一次性全部取出來,放到乙個列表裡

四、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

import commands

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

user_list=user_str.splitlines()  #列表形式分隔檔案內容(預設按行分隔)

for i in user_list:

u_info=i.split(':')

print "username is ",u_info[0],"uid is ",u_info[2]

方式二:

#!/usr/bin/python

import os

userlines=os.popen("cat /etc/passwd").readlines()

for i in userlines:

user_info=i.split(":")

print "username is",user_info[0],"\tuid is",user_info[2]

2、數值指令碼

1.提醒使用者輸入內容範圍是0-100

2.判斷使用者輸入的內容,如果不是數字給予提醒

3.輸出使用者輸入的內容

#!/usr/bin/python

u_grade=raw_input("please input your grade:")

if u_grade.isdigit():  #isdigit()將字串轉換成數的方法

if 0<=int(u_grade)<=100:

print "your grade is",u_grade

else:

print "please input the range of number 0-100"

else:

print "it's not a valid number,try again"

C C 中如何呼叫Python方法

c c 對python的呼叫層次可以分為三個層次,1 高層次的呼叫,2 純python呼叫,3 python方法的擴充套件 也就使向python輸出呼叫函式 這裡我主要討論 1 和 2 兩種方法.1 高層次的呼叫 這是最簡單的一種在c c 中呼叫python的方法.它直接的呼叫python提供的c呼...

Python爬蟲 xunfeng的Linux安裝

巡風支援多平台安裝,包括windows linux osx docker。我們今天只使用linux進行安裝。由於linux版本眾多,我們只講centos ubuntu和debian,以下在沒有特別說明的情況下,視為三個版本操作一樣 部署和除錯巡風要求root許可權,請使用者切換到root賬號進行操作...

Python如何呼叫JS檔案中的函式

python 呼叫js檔案中的函式方法如下 1 安裝pyexecjs第三方庫 2 導入庫 import execjs 3 呼叫js檔案中的方法 passwd execjs.compile open r web.js read decode abzzlu utf 8 call loginhandle ...