python文件操作,加密模塊練習題答案

1、遍歷磁盤
輸入一個路徑,打印當前路徑及子路徑中的所有文件的絕對路徑

import os
from os import path

def ergodic(file_path):
    files = os.listdir(file_path)##列出該目錄下的文件
    try:##由於有的文件具有權限,無法訪問,程序運行則馬上終止,無法訪問整個磁盤,這裏採用try對異常進行處理。
        for f in files:
            f = path.join(file_path,f) ##路徑拼接處理
            if os.path.isfile(f): ##是文件則輸出
                print(os.path.abspath(f))
            elif os.path.isdir(f):#文件夾則遞歸
                ergodic(f)
    except:
        pass


file_path = input("請輸入需要遍歷的磁盤:")
if os.path.isdir(file_path):
    ergodic(file_path)
else:
    print("輸入有誤!")

使用了try 的話就無法在控制檯直接退出了,對異常的處理是跳過。
完整的遍歷了我的J盤。
在這裏插入圖片描述
2、使用作業1的代碼完成磁盤視頻的篩選

import os
from os import path

def ergodic(file_path):
    files = os.listdir(file_path)##列出該目錄下的文件
    try:##由於有的文件具有權限,無法訪問,程序運行則馬上終止,無法訪問整個磁盤,這裏採用try對異常進行處理。
        for f in files:
            f2 = path.join(file_path,f) ##路徑拼接處理
            if os.path.isfile(f2): ##是文件則判斷爲視頻輸出
                f1 = f.split(".")##將是文件的進行分割得到後綴名,不能在for循環剛開始的時候分割
                f3 = f1[len(f1)-1]##因爲文件夾無法分割,將會溢出,並且需要分割取最後一個
                if f3 == "mp4":
                    print(f2)
            elif os.path.isdir(f2):#文件夾則遞歸
                ergodic(f2)
    except:
        pass

file_path = input("請輸入需要遍歷的磁盤:")
if os.path.isdir(file_path):
    ergodic(file_path)
else:
    print("輸入有誤!")

找出了J盤中的視頻,打碼是不能讓某老師的名字露出來,不太友好。
在這裏插入圖片描述
3、完成一個登陸註冊案例(密碼加密)
一個還算簡單的註冊,仿照上次的登錄註冊,將存入的內容修改爲加密後的內容。這樣得到了你的庫內密碼也得不到你的真實密碼。

import hashlib


users = []
user_passwd = []##數據庫中獲取到的是加密過的信息,不知道加密過程,也無法獲取真實密碼。

def print_print():
    print("----------------------------------")


def user_logon(user,passwd):
    if users.count(user) != 0:
        print("---------該用戶名已存在!")
    else:
        users.append(user)##用戶列表
        md5 =hashlib.md5(passwd.encode("utf-8"))##進行mad5加密
        md5.update("xuhaobo".encode("utf-8"))##更新密碼加入特定的加密內容“xuhaobo”
        passwd = md5.hexdigest()##將其轉換爲16進制
        dir = {user:passwd}
        user_passwd.append(dir)
        print(dir)

def user_login(user,passwd):
    if users.count(user) == 0:
        print("用戶不存在")
    else:
        md5 =hashlib.md5(passwd.encode("utf-8"))
        md5.update("xuhaobo".encode("utf-8"))
        passwd = md5.hexdigest()
        dir = {user:passwd}
        if user_passwd.count(dir) == 0:
            print("密碼錯誤!")
        else:
            print("登錄成功!")



while True:
    print("請輸入您的選項:")
    print_print()
    print("--------1---用戶註冊--------------")
    print_print()
    print("--------2---用戶登錄--------------")
    print_print()
    print("--------3---退出------------------")
    print_print()
    choice1 = int(input("請輸入:"))
    if choice1 == 1 :
        user = input("請輸入註冊用戶名:")
        passwd = input("請輸入密碼:")
        user_logon(user,passwd)
    elif choice1 == 2:
        user = input("請輸入登錄賬號:")
        passwd = input("請輸入登錄密碼:")
        user_login(user,passwd)
    elif choice1 == 3:
        break
    else:
        print("無效輸入!!!")

測試:
在這裏插入圖片描述
代碼僅供參考,權當拋磚引玉,希望能給你帶來一些幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章