python os模块练习题

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

 

转载于:https://www.cnblogs.com/feifeifeisir/p/9519749.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值