python基礎-檔案目錄操作
阿新 • • 發佈:2019-01-31
1.檢視系統資訊
>>>import os
>>>os.name #作業系統型別
nt
posix,表示系統是Linux、Unix或OS,nt表示windows系統
>>>os.uname()
獲取系統詳細資訊,但uname()不能再windows上使用。
2.環境變數
環境變數都儲存在os.environ這個變數中
>>>os.environ
如果要獲取某個環境變數的值,可以呼叫os.environ.get('key')
>>>os.environ.get('PATH')
3.操作檔案和目錄
#檢視當前目錄的絕對路徑
>>>os.path.abspath('.')
'D:\\py\\www'
#檢視當前目錄第二種方法
>>>os.getcwd()
'D:\\py\\www'
#改變當前目錄 如果改變的目錄不存在,會報錯
>>>os.chdir('D:\\py')
'D:\\py'
#將多個路徑組合後返回(用正確的路徑分隔符)
>>>os.path.join('/root','python','testdir') #linux系統
/root/python/testdir
#建立一個目錄
>> >os.mkdir('/root/python/test1')
#刪除目錄
>>>os.rmdir('/root/python/test1') #只能刪除空資料夾
>>>shutil.rmtree(path) #遍歷刪除資料夾 得引入shutil模組
#遍歷建立目錄
>>>os.makedirs('/root/test/test1/test11')
1.os.path.isabs(path) #判斷是否是絕對路徑
2.os.path.relpath(path,start) #返回從start路徑到path的相對路徑的字串,如果沒有提供start,就是用當前目錄作為start
3.os.path.dirname(path) #返回path最後一個斜槓之前的所有內容
4.os.path.basename(path) #返回path最後一個斜槓之後的所有內容
5.os.path.split() #同時獲得一個路徑的目錄名和檔名,用元組儲存
>>>path='/root/python/test/a.py'
>>>os.path.split(path)
('/root/puthon','a.py')
6.os.path.splitext() #取檔案字尾
>>>path='/root/python/test/a.py'
>>>os.path.splitext()
('/root/python/test/a','.py')
6.os.path.getsize(filepath) #獲取檔案的大小(單位位元組)
7.os.listdir(path) #返回目錄下所有的目錄和檔案
#檢查路徑
1.os.path.exists(path) #檔案或目錄是否存在
2.os.path.isfile(file) #file存在,並且是檔案,則返回True
3.os.path.isdir(path) #path存在,並且是目錄,則返回True
#讀取檔案
1.os.read(file) #讀取所有內容
2.os.readlines() #將檔案所有內容存入一個list,每一行就是一個元素,並且每行內容後面還會帶一個'\n'
#利用shelve模組儲存變數
利用shelve模組,可以將Python程式中的變數儲存到二進位制的shelf問價中,這樣,就可以從硬碟中回覆變數的資料
#引入shelve
>>>import shelve
>>>shelfFile=shelve.open('mydata')
>>>cats=['xm','xh','xb']
>>>shelfFile['cats']=cats
>>>shelfFile.close()
#在windows上執行這些程式碼,當前目錄會出現mydata.bak,mydata.dat,mydata.dir三個檔案
#在OS上,只會建立一個mydata.db檔案
>>>shelfFile=shelve.open('mydata')
>>>shelfFile['cats']
['xm','xh','xb']
>>>shelfFile.close()
shutil模組
1.shutil.copy(source,destination)
將路徑source處的檔案複製到路徑destination處的目錄,如果destination是一個檔名,則複製的同時也會重新命名
>>>import shutil,os
>>>shutil.copy('D:\\py\\www\\count1.py','D:\\py\\www\\count2.py') #複製並且重新命名
2.shutil.copytree(source,destination)複製整個資料夾,以及它的子資料夾和檔案
3.shutil.move(source,destination),將路徑source處的檔案或資料夾移動到destination處
>>>import shutil,os
>>>shutil.move('D:\\py\\www\\count1.py','D:\\py\\www\\count3.py') #相當於重新命名
>>>shutil.move('D:\\py\\www\\count1.py','D:\\py\\') #移動檔案
#如果py目錄不存在,則會把count1.py重新命名為py
永久刪除檔案和資料夾
os.unlink(filepath) #刪除檔案
os.rmdir(path) #刪除資料夾,但必須得是空資料夾
shutil.rmtree(path) #刪除資料夾,包括它的子資料夾和檔案
str.endswith(shuffix[,start[,end]])
shuffix 可以是一個字串或字元
start 字串中開始位置,即從str中的哪個位置開始查,預設從開頭開始查
end 字串結束位置
endswith()可以用來判斷檔案的字尾名
#刪除所有的.txt檔案
if(filename.endswith('.txt'):
os.unlink(filename)
遍歷目錄樹
os.walk(path);
os.walk()在迴圈的每次迭代中,返回三個值:
1.當前那資料夾名稱的字串
2.當前資料夾子資料夾的字串的列表
3.當前資料夾中檔案的字串的列表
所以可以使用for迴圈遍歷目錄樹
import os
path='D:\\py\\www'
for folderName,subfolders,filenames in os.walk(path):
print('當前目錄為:'+folderName)
for subfolder in subfolders:
print('子目錄:'+folderName+': '+subfolder)
for filename in filenames:
print('子檔案:'+folderName+': '+filename)