一、使用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模塊
注意:該模塊用於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分隔,列表形式賦值給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"