# 一、獲取某個文件所在目錄的上一級目錄。 # 例如'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')
# 三、寫一個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)