python os模块练习题

# 一、获取某个文件所在目录的上一级目录。 # 例如'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)
相关文章
相关标签/搜索