zoukankan      html  css  js  c++  java
  • python os模块练习题

    # 1、获取某个文件所在目录的上一级目录。
    # 例如'D:pythonprojects	est19.py'目录的结果 :D:pythonprojects
    # 方法1
    # path = os.path.dirname(r'D:pythonprojects	est19.py')
    # base_name = os.path.dirname(path)
    # print(base_name)
    # 方法2
    # base_name = os.path.dirname(os.path.dirname(r'D:pythonprojects	est19py'))
    # 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:pythonPycharmProjectsob3	est19.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)
  • 相关阅读:
    nodejs生成UID(唯一标识符)——node-uuid模块
    python 3.6 关于python的介绍
    Hdu-3333 Turning Tree (离线树状数组/线段树)
    HDU-3333 Turing Tree 分块求区间不同数和
    Hello,World.
    IntelliJ IDEA 自动化工具安装并添加自动化测试框架
    git&sourcetree安装及在IntelliIJ下拉取项目基础使用
    3.jquery在js文件中获取选择器对象
    2.jquery在js中写标准的ajax请求
    操作系统简介
  • 原文地址:https://www.cnblogs.com/feifeifeisir/p/9519749.html
Copyright © 2011-2022 走看看