天天看點

(彙總)os子產品以及shutil子產品對檔案的操作

'''
# os 子產品
os.sep 可以取代作業系統特定的路徑分隔符。windows下為 '\\'
os.name 字元串訓示你正在使用的平台。比如對于Windows,它是'nt',而對于Linux/Unix使用者,它是 'posix'
os.getcwd() 函數得到目前工作目錄,即目前Python腳本工作的目錄路徑
os.getenv() 擷取一個環境變量,如果沒有傳回none
os.putenv(key, value) 設定一個環境變量值
os.listdir(path) 傳回指定目錄下的所有檔案和目錄名
os.remove(path) 函數用來删除一個檔案
os.system(command) 函數用來運作shell指令
os.linesep 字元串給出目前平台使用的行終止符。例如,Windows使用 '\r\n',Linux使用 '\n' 而Mac使用 '\r'
os.path.split(path)  函數傳回一個路徑的目錄名和檔案名
os.path.isfile() 和os.path.isdir()函數分别檢驗給出的路徑是一個檔案還是目錄
os.path.exists() 函數用來檢驗給出的路徑是否真地存在
os.curdir  傳回目前目錄 ('.')
os.mkdir(path) 建立一個目錄
os.makedirs(path) 遞歸的建立目錄
os.chdir(dirname) 改變工作目錄到dirname    
os.path.getsize(name) 獲得檔案大小,如果name是目錄傳回0L
os.path.abspath(name) 獲得絕對路徑
os.path.normpath(path) 規範path字元串形式
os.path.splitext()  分離檔案名與擴充名
os.path.join(path,name) 連接配接目錄與檔案名或目錄
os.path.basename(path) 傳回檔案名
os.path.dirname(path) 傳回檔案路徑
os.walk(top,topdown=True,onerror=None)  周遊疊代目錄
os.rename(src, dst)  重命名file或者directory src到dst 如果dst是一個存在的directory, 将抛出OSError. 在Unix, 如果dst在存且是一個file, 如果使用者有權限的話,它将被安靜的替換. 操作将會失敗在某些Unix 中如果src和dst在不同的檔案系統中. 如果成功, 這命名操作将會是一個原子操作 (這是POSIX 需要). 在 Windows上, 如果dst已經存在, 将抛出OSError,即使它是一個檔案. 在unix,Windows中有效。
os.renames(old, new) 遞歸重命名檔案夾或者檔案。像rename()

# shutil 子產品
shutil.copyfile( src, dst) 從源src複制到dst中去。當然前提是目标位址是具備可寫權限。抛出的異常資訊為IOException. 如果目前的dst已存在的話就會被覆寫掉
shutil.move( src, dst)  移動檔案或重命名
shutil.copymode( src, dst) 隻是會複制其權限其他的東西是不會被複制的
shutil.copystat( src, dst) 複制權限、最後通路時間、最後修改時間
shutil.copy( src, dst)  複制一個檔案到一個檔案或一個目錄
shutil.copy2( src, dst)  在copy上的基礎上再複制檔案最後通路時間與修改時間也複制過來了,類似于cp –p的東西
shutil.copy2( src, dst)  如果兩個位置的檔案系統是一樣的話相當于是rename操作,隻是改名;如果是不在相同的檔案系統的話就是做move操作
shutil.copytree( olddir, newdir, True/Flase)
把olddir拷貝一份newdir,如果第3個參數是True,則複制目錄時将保持檔案夾下的符号連接配接,如果第3個參數是False,則将在複制的目錄下生成實體副本來替代符号連接配接
shutil.rmtree( src ) 遞歸删除一個目錄以及目錄内的所有内容
'''


import os

# 路徑:相對路徑(以目前位置出發)和絕對路徑(以盤符出發路徑)
#getcwd() 檢視路徑
file_path = os.getcwd()
print(file_path)

# listdir() -- 檢視某個路徑下的所有檔案 -- 傳回一個清單  \test  \t
list1 = os.listdir('./')
print(list1)

# os.mkdir('aaa')
# aaa\bbb\ccc
# os.makedirs(r'aaa\bbb\ccc')

# os.rmdir(r'aaa\bbb\ccc')
# os.removedirs(r'aaa')
# os.removedirs(r'aaa\bbb\ccc')
# os.remove(r'aaa\bbb\ccc\as.py')
# 遞歸删除目錄樹
# import shutil
# shutil.rmtree(r'aaa')

# 重命名 rename(檔案名,改成什麼名字)
# os.rename('00-複習.py','000-複習.py')

# 删除檔案1.txt
# os.remove('1.txt')