os模塊:
python
• 負責程序與操做系統的交互,提供了訪問操做系統底層的接口linux
• 使用.remove()方法windows
os.remove(‘f’) #刪除文件 os.rmdir('f) #刪除文件夾
(2)重命名文件函數
• 使用.rename()方法測試
os.rename(old,new) #重命名
• 使用.mkdir()或.makedirs()方法編碼
os.mkdir('python') #建立文件夾 os.makedirs('python2')
.mkdir()與.makedirs()的區別:spa
• .mkdir()只能建立單層目錄,且若是父目錄不存在,直接建立子目錄會報錯操作系統
• .makedirs()能夠同時建立多層目錄code
#分別用他們2個建立一個2層的目錄: china/beijing os.mkdir('china/beijing') #結果:報錯【只有一層會建立,兩層以上就會報錯】 os.makedirs('china/beijing') #結果:建立成功【多層不會報錯】
• 使用.removedirs()方法blog
os.removedirs('china') #結果:報錯,由於China裏面還有beijing文件夾
• 使用.listdir()方法,能夠得到路徑下第一層的文件夾和文件
print(os.listdir()) #顯示該目錄下的全部文件夾和文件 #若是不寫路徑,默認獲取到的是當前路徑下的全部文件夾和文件 print(os.listdir('..') #路徑能夠寫以.. 也能夠是絕對路徑
• 判斷是不是文件夾,使用.path.isdir()方法
print(os.path.isdir('f:\\2.工做'))#判斷是不是文件夾
• 判斷是不是文件,使用.path.isfile()方法
print(os.path.isfile('筆記.py'))#判斷是不是文件
• 判斷文件夾或文件是否存在,使用.path.exists()方法
print(os.path.exists('china'))#判斷文件或者文件夾是否存在
使用.path.isdir()和.path.isfile()方法時,若是該文件(夾)不存在,結果顯示爲False;若是該文件(夾)不是文件夾,結果顯示爲False。所以這兩種方法還能夠判斷文件(夾)是否存在。
• 使用.walk()方法,能夠遍歷取到當前路徑以及路徑中的全部路徑、文件夾、文件
res=os.walk(r'C:\Users\Bai\PycharmProjects\untitled\博客') #r表示後面是路徑,「\」不轉義
res=os.walk(r'C:\Users\Bai\PycharmProjects\untitled\博客') for cur_path,dirs,files in res: #它有3個參數,分別表明當前目錄、當前文件夾、當前文件 print('當前目錄',cur_path) print('當前文件夾',dirs) print('當前文件',files) print('='*50) #打印50個‘=’
res = os.walk(r'C:\Users\Bai\PycharmProjects\untitled\博客') count = 0 for cur_path, dirs, files in res: print('當前目錄下面的全部文件', files) for i in files: if (i.endswith('.py')): count += 1 print('共有%d個Python文件' % count)
二、找到具備關鍵詞的文件所在路徑:
res = os.walk(r'C:\Users\Bai\PycharmProjects\untitled\博客') count = 0 for cur_path, dirs, files in res: print('當前目錄下面的全部文件', files) print('='*50) for f in files: if '.mp4' in f: print(cur_path) #找到.mp4所在路徑
#查找文件的路徑 def find_file(path,keyword): res=os.walk(path) for cur_path,dirs,files in res: for file_name in files: if keyword in file_name: print('該文件在%s下面'%cur_path) find_file('f:\\','測試用例模板.xls')
(1)使用.system()方法
os.system('ipconfig') #windows下查找ip Mac下查找ifconfig
os.system('dir') #windows下查找當前路徑 #在哪一個操做系統下,.system裏的變量就用哪一個操做系統裏的命令
(2)使用.popen()方法
res=os.popen('ipconfig').read() #windows下獲取ip地址,沒有亂碼, .read()打印出來,能夠拿到返回結果 print('res結果:',res)
(3)區別:
.system()無返回值,打印時獲取不到命令的結果;.popen()能夠獲取到命令結果,但必須先調用.read()方法。
若是不須要返回命令結果,那直接使用.system()方法便可。
res=os.system('ipconfig') print('res...',res) #結果:res... 0 #0表示這條命令執行成功了,但打印不出該命令的結果
res2=os.popen('ipconfig').read() #獲取結果要使用.read()讀取後再打印,不然顯示的是二進制編碼 print(res2) #結果: #res2... #Windows IP 配置 # # #以太網適配器 以太網: # # 媒體狀態 . . . . . . . . . . . . : 媒體已斷開鏈接 # 鏈接特定的 DNS 後綴 . . . . . . . : DHCP HOST # #無線局域網適配器 本地鏈接* 2: ...
• 使用os.path.join()方法
print(os.path.join('china','a.py')) #結果:china\a.py windows下 #結果:china/a.py linux下
* 該方法的優勢是能夠跨平臺使用同一個命令.
• 使用.os.path.split()方法,用於分割路徑和文件(夾)名
res=os.path.split(r'C:\Users\Bai\PycharmProjects\untitled\博客') print(res) #結果('C:\\Users\\Bai\\PycharmProjects\\untitled', '博客') #會把最後一個【‘博客’】分割出來
• 使用os.path.dirname()方法
res=os.path.dirname(r'china\beijing\haidian\changping\a.py') print(res) #結果爲:china\beijing\haidian\changping #取的是【a.py以前的路徑】
• 使用os.path.getsize()方法,能夠用該方法判斷文件是否爲空
print(os.path.getsize('筆記.txt')) #結果爲:839
• 使用os.getcwd()方法
print(os.getcwd()) #結果:C:\Users\Bai\PycharmProjects\untitled\摩羯座\day5
• 使用os.chdir()方法
res=os.getcwd() #取當前的目錄 print(res) #結果爲:F:\0.script repository\Python\jnz\day06 print(os.chdir(r'F:\0.script repository\Python\jnz\day05'))#進入到哪一個目錄下 結果爲:None res=os.getcwd() #取當前的目錄 print(res) #結果爲:F:\0.script repository\Python\jnz\day05