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)
相關文章
相關標籤/搜索