Python中如何調用Linux命令

來源:互聯網
上載者:User

標籤:讀一行   font   name   目錄   abs   mkdir   大小   cond   pytho   

一、使用os模組

In [1]: import os   #匯入os模組In [2]: os.system(‘ls‘)anaconda-ks.cfgepel-release-7-5.noarch.rpmipython-4.1.2ipython-4.1.2.tar.gzpip-8.1.2pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gzOut[2]: 0In [3]: a=os.system(‘ls‘)   ##得到的是執行的命令的傳回值,並不是執行結果anaconda-ks.cfgepel-release-7-5.noarch.rpmipython-4.1.2ipython-4.1.2.tar.gzpip-8.1.2pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gzIn [4]: a   #執行ls命令的傳回值,成功,為0Out[4]: 0In [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]: cOut[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]: dOut[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/pythonimport commandsuser_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/pythonimport osuserlines=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/pythonu_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"

Python中如何調用Linux命令

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.