# -*- coding#utf-8 -*-
import os
import shutil
# os子產品的常有操作
def demo():
os.mkdir(r'F:\test\test') #預設會在目前目錄下建立目錄
os.rmdir(r'F:\test\test') # 隻能删除空目錄
os.makedirs(r'F:\test\mulitiple\levels') #建立多級目錄
shutil.rmtree(r'F:\test') #空目錄、有内容的目錄都可以删
os.mknod(r"F:\demo\test123") # 建立一個空檔案 在linux 運作的
open(r"F:\demo\a.txt",'w') # 建立一個檔案
paths = os.listdir(r'F:\demo') #傳回指定目錄下的所有檔案和目錄名
print(paths)
os.remove(r'F:\demo\a.txt')# 删除一個檔案
print(os.system("netstat -ano"))#運作shell指令
os.rename("oldname", "newname") #重命名檔案(目錄).檔案或目錄都是使用這條指令
# os.path()
def demo2():
dir_path = r'F:\test\mulitiple'
file_path = r'F:\test\mulitiple\a.txt'
print(os.path.abspath(r'.')) #傳回目前目錄的絕對路徑
print(os.path.abspath(r"..")) # 上級目錄的絕對路徑
print(os.path.basename(r'F:\test\mulitiple\a.txt')) # 傳回檔案名 輸出a.txt
print(os.path.isfile(r'F:\test\mulitiple\a.txt')) # 是檔案輸出True
print(os.path.isdir(r'F:\test\mulitiple')) # 是目錄輸出True
print(os.path.isabs(dir_path))#判斷是否為絕對路徑
print(os.path.split(dir_path)) #分割檔案名與目錄(事實上,如果你完全使用目錄,它也會将最後一個目錄作為檔案名而分離,同時它不會判斷檔案或目錄是否存在)
print(os.path.splitext(file_path)) #分離檔案名和擴充名
print(os.path.join(dir_path, 'a.txt')) #連接配接目錄與檔案名或目錄
print(os.path.dirname("a.txt")) #傳回檔案路徑
# shutil
def demo1():
dir_path = r'F:\test\b.txt'
file_path = r'F:\test\mulitiple\a.txt'
# 複制檔案: oldfile和newfile都隻能是檔案
shutil.copyfile(file_path,dir_path)
# oldfile隻能是檔案夾,newfile可以是檔案,也可以是目标目錄
# shutil.copy("oldfile", "newfile")
#複制檔案夾.olddir和newdir都隻能是目錄,且newdir必須不存在
#shutil.copytree("olddir", "newdir")
if __name__ == '__main__':
demo1()