# 1、獲取某個文件所在目錄的上一級目錄。 # 例如'D:\python\projects\test19.py'目錄的結果 :D:\python\projects # 方法1 # path = os.path.dirname(r'D:\python\projects\test19.py') # base_name = os.path.dirname(path) # print(base_name) # 方法2 # base_name = os.path.dirname(os.path.dirname(r'D:\python\projects\test19py')) # print(base_name)
2、寫一個函數,接受一個參數,如果是文件,就執行這個文件,如果是文件夾,就執行這個文件夾下所有的py文件 def func(path): # 先判斷這個path是文件還是文件夾,isdir isfile # 如果是文件,.py結尾的 if os.path.isfile(path) and path.endswith('.py'): # 執行這個文件 : os.system('python %s'%path) # 模擬了在cmd中執行代碼的過程 # 如果是文件夾 elif os.path.isdir(path): # 查看這個文件夾下的所有內容 listdir for name in os.listdir(path): abs_path = os.path.join(path,name) # 如果是文件 .py結尾的 if abs_path.endswith('.py'): # 執行這個文件 : os.system('python %s'%abs_path) os.system('python %s' % abs_path) func(r'D:\python\PycharmProjects\ob3\test19.py')
# 3、寫一個copy函數,接受兩個參數,第一個參數是源文件的位置,第二個#參數是目標位置,將源文件copy到目標位置。 # 還需要判斷一下這個文件之前是否存在 # def copy(path1,path2): # filename = os.path.basename(path1) # if os.path.isfile(path1) and os.path.isdir(path2): # path2 = os.path.join(path2,filename) # if os.path.exists(path2):print('已有同名文件') # with open(path1,'rb') as f1,open(os.path.join(path2,filename),'wb') as f2: # content = f1.read() # f2.write(content)
# 4,使用python代碼統計一個文件夾中所有文件的總大小 # 遞歸 # def func(path): # size_sum=0 # name_list=os.listdir(path) # for name in name_list: # path_abs=os.path.join(path,name) # if os.path.isdir(path_abs): # size=func(path_abs) # size_sum+=size # else: # size_sum+=os.path.getsize(path_abs) # return size_sum # ret=func(r'D:/python/PycharmProjects') # print(ret) # 用循環解決: # lst=[r'D:/python/PycharmProjects'] # size_sum=0 # while lst: # path=lst.pop() # path_list=os.listdir(path) # for name in path_list: # path_abs=os.path.join(path,name) # if os.path.isdir(path_abs): # lst.append(path_abs) # else: # size_sum+=os.path.getsize(path_abs) # print(size_sum)