標籤:讀一行 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命令