# 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)