最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python實(shí)現(xiàn)的自動(dòng)化文件整理腳本

 更新時(shí)間:2026年03月11日 09:29:26   作者:MarkHD  
本文介紹了如何使用Python腳本實(shí)現(xiàn)一個(gè)桌面自動(dòng)整理工具,該工具能夠自動(dòng)打開下載文件夾和三個(gè)分類文件夾,智能識(shí)別文件類型并將其分類,同時(shí)記錄操作日志并處理異常情況,文章詳細(xì)描述了項(xiàng)目的目標(biāo)、挑戰(zhàn)、技術(shù)選型、實(shí)現(xiàn)細(xì)節(jié)、難點(diǎn)攻克和優(yōu)化策略,需要的朋友可以參考下

一、項(xiàng)目全景:目標(biāo)、挑戰(zhàn)與設(shè)計(jì)方案

1.1 項(xiàng)目目標(biāo)

編寫一個(gè)Python腳本,實(shí)現(xiàn)以下功能:

  1. 自動(dòng)打開“下載”文件夾窗口和三個(gè)分類文件夾窗口(“圖片”、“文檔”、“壓縮包”)。
  2. 智能識(shí)別文件夾中的文件圖標(biāo),根據(jù)文件類型(圖片、文檔、壓縮包)分類。
  3. 模擬拖拽將文件圖標(biāo)移動(dòng)到對(duì)應(yīng)分類文件夾窗口中。
  4. 記錄完整操作日志,包括移動(dòng)了哪些文件、是否成功、耗時(shí)等。
  5. 處理異常:窗口未找到、圖標(biāo)未識(shí)別、拖拽失敗等情況,具備重試機(jī)制。

1.2 核心挑戰(zhàn)

  • 文件圖標(biāo)識(shí)別:同一類型文件圖標(biāo)可能因關(guān)聯(lián)程序不同而視覺差異巨大(如.png和.jpg都顯示為照片應(yīng)用圖標(biāo),但細(xì)節(jié)不同)。
  • 拖拽精度:拖拽過(guò)程中鼠標(biāo)不能偏移,否則可能觸發(fā)其他操作。
  • 窗口狀態(tài)不確定性:文件夾窗口可能最小化、重疊、位于不同顯示器。
  • 跨分辨率/縮放適配:坐標(biāo)不能寫死,必須基于圖像識(shí)別或相對(duì)定位。

1.3 技術(shù)選型與架構(gòu)

模塊技術(shù)方案
窗口管理pygetwindow(激活、移動(dòng)、調(diào)整大?。?/td>
圖像識(shí)別pyautogui.locateOnScreen + OpenCV(置信度)
鼠標(biāo)操作pyautogui 拖拽、點(diǎn)擊
鍵盤/剪貼板pyperclip + pyautogui.hotkey
日志記錄Python內(nèi)置logging模塊
輔助工具ostime、resys

架構(gòu)圖(簡(jiǎn)化):

初始化
   ↓
準(zhǔn)備窗口 → 激活并排列窗口
   ↓
掃描文件區(qū)域 → 圖像識(shí)別獲取所有文件圖標(biāo)位置
   ↓
文件分類 → 根據(jù)截圖局部特征判斷類型
   ↓
拖拽移動(dòng) → 模擬鼠標(biāo)拖拽到目標(biāo)窗口
   ↓
日志記錄 → 記錄操作結(jié)果
   ↓
異常處理 → 重試/跳過(guò)/報(bào)警

二、實(shí)現(xiàn)細(xì)節(jié):從零構(gòu)建自動(dòng)化整理流水線

2.1 第一步:窗口準(zhǔn)備與布局

桌面整理需要同時(shí)操作多個(gè)窗口。首先確保目標(biāo)文件夾窗口已打開,若未打開則通過(guò)快捷鍵Win+ECmd+N新建資源管理器窗口并導(dǎo)航。

import pygetwindow as gw
import pyautogui
import time
import subprocess
import sys

def ensure_folder_window(folder_path, window_title_pattern):
    """確保指定文件夾的窗口已打開且激活"""
    # 查找現(xiàn)有窗口
    windows = [w for w in gw.getAllWindows() 
               if w.title and folder_path in w.title]
    if windows:
        win = windows[0]
        win.activate()
        time.sleep(0.5)
        return win
    
    # 未找到,打開新窗口
    if sys.platform == 'win32':
        subprocess.Popen(f'explorer "{folder_path}"')
    elif sys.platform == 'darwin':
        subprocess.Popen(['open', folder_path])
    else:  # Linux 簡(jiǎn)單模擬
        pyautogui.hotkey('ctrl', 'alt', 't')
        time.sleep(1)
        pyautogui.typewrite(f'nautilus "{folder_path}"')
        pyautogui.press('enter')
    
    time.sleep(2)  # 等待窗口打開
    return ensure_folder_window(folder_path, window_title_pattern)  # 遞歸獲取

窗口布局策略:將“下載”窗口置于屏幕左側(cè),三個(gè)分類窗口縱向排列在右側(cè)。調(diào)整窗口尺寸,使所有文件圖標(biāo)完全可見。

def arrange_windows(download_win, category_wins):
    """排列窗口:左大右三"""
    screen_w, screen_h = pyautogui.size()
    
    # 下載窗口占左側(cè)2/5
    dw_width = int(screen_w * 0.4)
    dw_height = int(screen_h * 0.8)
    download_win.moveTo(0, 0)
    download_win.resizeTo(dw_width, dw_height)
    time.sleep(0.2)
    
    # 右側(cè)三個(gè)分類窗口均分
    cw_width = int(screen_w * 0.6) - 10
    cw_height = int(screen_h * 0.26)
    for i, win in enumerate(category_wins):
        win.moveTo(dw_width + 5, i * (cw_height + 5))
        win.resizeTo(cw_width, cw_height)
        time.sleep(0.2)

2.2 第二步:圖像識(shí)別——定位文件圖標(biāo)

使用pyautogui.locateAllOnScreen掃描“下載”窗口區(qū)域,獲取所有文件圖標(biāo)的邊界框。核心難點(diǎn):文件圖標(biāo)千變?nèi)f化,無(wú)法用單一模板覆蓋。

解決方案:不直接識(shí)別文件類型,而是識(shí)別圖標(biāo)的共性——文件圖標(biāo)的左側(cè)通常有一個(gè)小圖標(biāo)(如文件縮略圖),右側(cè)是文件名。我們通過(guò)識(shí)別“文件名區(qū)域”間接定位文件。

策略

  1. 截取“下載”窗口區(qū)域。
  2. 使用圖像識(shí)別定位文件名文本?文本識(shí)別(OCR)超出范圍,且效率低。
  3. 更簡(jiǎn)易方案:利用系統(tǒng)列表視圖的項(xiàng)目間距。在“詳細(xì)信息”視圖下,每個(gè)文件占據(jù)固定高度的行。通過(guò)識(shí)別第一行,然后根據(jù)行高推算所有文件位置。

我們選擇固定間距法——假設(shè)用戶已將文件夾視圖設(shè)置為“列表”或“詳細(xì)信息”,每個(gè)文件圖標(biāo)高度固定(如20像素)。通過(guò)識(shí)別第一個(gè)文件的圖標(biāo)位置,然后向下偏移等距掃描。

def locate_file_icons(win, item_height=25, max_items=50):
    """基于窗口內(nèi)第一個(gè)文件圖標(biāo),推斷所有文件位置"""
    region = (win.left, win.top + 60, win.width, win.height - 80)  # 避開工具欄
    
    # 找第一個(gè)文件圖標(biāo)(可使用通用文件圖標(biāo)模板)
    first_icon = pyautogui.locateOnScreen('file_icon_template.png',
                                          region=region,
                                          confidence=0.7,
                                          grayscale=True)
    if not first_icon:
        return []
    
    icons = []
    x, y = first_icon.left, first_icon.top
    for i in range(max_items):
        current_y = y + i * item_height
        if current_y + item_height > win.top + win.height:
            break
        # 在預(yù)測(cè)位置附近搜索確認(rèn)
        search_region = (x - 5, current_y - 5, 50, item_height + 10)
        confirmed = pyautogui.locateOnScreen('file_icon_template.png',
                                             region=search_region,
                                             confidence=0.7,
                                             grayscale=True)
        if confirmed:
            icons.append(confirmed)
        else:
            break  # 連續(xù)找不到則終止
    return icons

重要:此方法依賴視圖模式。更通用的方案是結(jié)合Ctrl+A全選,然后通過(guò)剪貼板獲取文件名列表(Ctrl+C復(fù)制文件名),再用pygetwindow獲取列表項(xiàng)位置。限于篇幅,此處不展開。

2.3 第三步:文件分類——基于后綴名還是視覺特征?

由于是純GUI操作,我們無(wú)法直接讀取文件擴(kuò)展名。因此必須通過(guò)視覺特征判斷類型。

方案A:截取每個(gè)文件圖標(biāo)左側(cè)的小圖像,與預(yù)存的圖片、文檔、壓縮包圖標(biāo)模板進(jìn)行圖像匹配。設(shè)定不同置信度閾值,優(yōu)先匹配。

def classify_file_icon(icon_box):
    """根據(jù)圖標(biāo)區(qū)域截圖判斷文件類型"""
    # 截取圖標(biāo)區(qū)域(左上角小圖標(biāo))
    icon_img = pyautogui.screenshot(region=(
        icon_box.left, icon_box.top, 32, 32))
    icon_img.save('temp_icon.png')  # 調(diào)試用
    
    # 分別匹配
    if pyautogui.locateOnScreen('image_icon.png', region=(icon_box.left, icon_box.top, 32, 32), confidence=0.75):
        return 'image'
    elif pyautogui.locateOnScreen('doc_icon.png', confidence=0.75):
        return 'document'
    elif pyautogui.locateOnScreen('zip_icon.png', confidence=0.75):
        return 'archive'
    else:
        return 'other'

方案B:更工程化的做法——混合定位。先通過(guò)全選復(fù)制文件名列表(剪貼板),再通過(guò)文件名后綴判斷類型,然后用坐標(biāo)關(guān)聯(lián)。這利用了鍵盤操作,是可行的GUI方案。

我們將采用方案B,因?yàn)樗煽浚覐?fù)習(xí)了Day 14-16的剪貼板技巧。

def get_file_names_from_folder(win):
    """激活窗口,Ctrl+A全選,Ctrl+C復(fù)制文件名,從剪貼板解析"""
    win.activate()
    time.sleep(0.3)
    pyautogui.hotkey('ctrl', 'a')
    time.sleep(0.2)
    pyautogui.hotkey('ctrl', 'c')
    time.sleep(0.2)
    text = pyperclip.paste()
    # 解析文件名(Windows資源管理器復(fù)制的是完整路徑?需測(cè)試)
    lines = text.splitlines()
    return [line for line in lines if line and not line.startswith(' ')]

同步坐標(biāo):通過(guò)locate_file_icons獲取的圖標(biāo)列表順序與全選復(fù)制的順序一致(通常從上到下)。因此我們可以將文件名與圖標(biāo)坐標(biāo)一一對(duì)應(yīng)。

2.4 第四步:拖拽移動(dòng)

核心函數(shù):pyautogui.dragTo()。需要精準(zhǔn)控制:從文件圖標(biāo)中心按下左鍵,拖拽到目標(biāo)窗口內(nèi)釋放。

def drag_file(icon_box, target_win):
    """將文件從圖標(biāo)位置拖拽到目標(biāo)窗口中心"""
    # 起點(diǎn):圖標(biāo)中心
    start_x = icon_box.left + icon_box.width // 2
    start_y = icon_box.top + icon_box.height // 2
    
    # 終點(diǎn):目標(biāo)窗口中心偏左(避免覆蓋滾動(dòng)條)
    end_x = target_win.left + target_win.width // 3
    end_y = target_win.top + target_win.height // 2
    
    pyautogui.moveTo(start_x, start_y)
    time.sleep(0.1)
    pyautogui.dragTo(end_x, end_y, duration=0.5, button='left')
    time.sleep(0.3)  # 等待系統(tǒng)完成移動(dòng)

陷阱:拖拽過(guò)程中鼠標(biāo)速度過(guò)快可能導(dǎo)致目標(biāo)窗口無(wú)法正確識(shí)別放下操作。建議設(shè)置duration參數(shù)為0.3~0.5秒。

驗(yàn)證:移動(dòng)成功后,文件圖標(biāo)應(yīng)從“下載”窗口消失??赏ㄟ^(guò)再次掃描圖標(biāo)區(qū)域確認(rèn)。

2.5 第五步:日志系統(tǒng)

使用Python標(biāo)準(zhǔn)庫(kù)logging,同時(shí)輸出到控制臺(tái)和文件。

import logging

def setup_logger():
    logger = logging.getLogger('DesktopCleaner')
    logger.setLevel(logging.INFO)
    
    fh = logging.FileHandler('cleaner.log', encoding='utf-8')
    ch = logging.StreamHandler()
    
    formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
    fh.setFormatter(formatter)
    ch.setFormatter(formatter)
    
    logger.addHandler(fh)
    logger.addHandler(ch)
    return logger

logger = setup_logger()

每條文件移動(dòng)操作記錄:文件名、目標(biāo)分類、耗時(shí)、結(jié)果(成功/失敗)。

三、完整代碼實(shí)現(xiàn)(核心骨架)

為保持文章可讀性,以下展示整合后的核心類DesktopCleaner

import pyautogui
import pygetwindow as gw
import pyperclip
import time
import logging
import sys
import re

class DesktopCleaner:
    def __init__(self, download_path, categories):
        """
        categories: {'image': 'C:\\分類\\圖片', 
                     'document': 'C:\\分類\\文檔', 
                     'archive': 'C:\\分類\\壓縮包'}
        """
        self.download_path = download_path
        self.categories = categories
        self.logger = self._setup_logger()
        self.windows = {}  # 存儲(chǔ)窗口對(duì)象
        
    def _setup_logger(self):
        # ... 如上logging配置 ...
    
    def ensure_all_windows(self):
        """打開/激活所有需要的文件夾窗口"""
        self.logger.info("準(zhǔn)備窗口...")
        self.windows['download'] = self._ensure_window(self.download_path)
        for name, path in self.categories.items():
            self.windows[name] = self._ensure_window(path)
        self._arrange_windows()
        self.logger.info("窗口準(zhǔn)備完成")
    
    def _ensure_window(self, folder_path):
        # ... 實(shí)現(xiàn)參考2.1 ...
    
    def _arrange_windows(self):
        # ... 窗口布局 ...
    
    def scan_files(self):
        """獲取文件列表及圖標(biāo)位置"""
        win = self.windows['download']
        win.activate()
        time.sleep(0.5)
        
        # 全選并復(fù)制文件名列表
        pyautogui.hotkey('ctrl', 'a')
        time.sleep(0.2)
        pyautogui.hotkey('ctrl', 'c')
        time.sleep(0.2)
        file_names = [f.strip() for f in pyperclip.paste().splitlines() if f.strip()]
        
        # 獲取圖標(biāo)位置列表(假設(shè)順序一致)
        icons = self._locate_icons(win)
        if len(icons) != len(file_names):
            self.logger.warning(f"圖標(biāo)數(shù)量({len(icons)})與文件名數(shù)量({len(file_names)})不一致,按較小值處理")
            min_len = min(len(icons), len(file_names))
            icons = icons[:min_len]
            file_names = file_names[:min_len]
        
        # 為每個(gè)文件加上類型標(biāo)簽
        files_info = []
        for name, icon in zip(file_names, icons):
            ftype = self._get_file_type(name)
            files_info.append((name, icon, ftype))
        
        self.logger.info(f"掃描到{len(files_info)}個(gè)文件")
        return files_info
    
    def _locate_icons(self, win):
        # 基于行高推斷,參考2.2
        # 簡(jiǎn)化:直接使用全選后的視覺反饋,找到第一個(gè)被選中的圖標(biāo)
        # 實(shí)際需精細(xì)調(diào)整
        pass
    
    def _get_file_type(self, filename):
        """根據(jù)擴(kuò)展名判斷類型"""
        ext = filename.lower().split('.')[-1] if '.' in filename else ''
        if ext in ('jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff'):
            return 'image'
        elif ext in ('txt', 'doc', 'docx', 'pdf', 'xls', 'xlsx', 'ppt', 'pptx'):
            return 'document'
        elif ext in ('zip', 'rar', '7z', 'tar', 'gz'):
            return 'archive'
        else:
            return 'other'
    
    def move_file(self, file_info):
        """移動(dòng)單個(gè)文件"""
        name, icon, ftype = file_info
        if ftype not in self.windows:
            self.logger.warning(f"文件{name}類型{ftype}無(wú)對(duì)應(yīng)目標(biāo)窗口,跳過(guò)")
            return False
        
        target_win = self.windows[ftype]
        try:
            start_time = time.time()
            self._drag_file(icon, target_win)
            elapsed = time.time() - start_time
            self.logger.info(f"成功移動(dòng): {name} -> {ftype}, 耗時(shí){elapsed:.2f}s")
            return True
        except Exception as e:
            self.logger.error(f"移動(dòng)失敗: {name}, 錯(cuò)誤: {str(e)}")
            return False
    
    def _drag_file(self, icon_box, target_win):
        # ... 拖拽實(shí)現(xiàn) ...
    
    def run(self):
        self.ensure_all_windows()
        files = self.scan_files()
        self.logger.info(f"開始移動(dòng)文件,共{len(files)}個(gè)")
        
        success_count = 0
        for file_info in files:
            if self.move_file(file_info):
                success_count += 1
            time.sleep(0.2)  # 操作間隔
        
        self.logger.info(f"整理完成,成功: {success_count}, 失敗: {len(files)-success_count}")

if __name__ == '__main__':
    cleaner = DesktopCleaner(
        download_path='C:\\Users\\YourName\\Downloads',
        categories={
            'image': 'D:\\Sorted\\Images',
            'document': 'D:\\Sorted\\Documents',
            'archive': 'D:\\Sorted\\Archives'
        }
    )
    cleaner.run()

四、難點(diǎn)攻堅(jiān)與優(yōu)化策略

4.1 圖標(biāo)定位的魯棒性提升

問(wèn)題:基于固定行高的推斷在“中等圖標(biāo)”、“大圖標(biāo)”視圖下失效。
解決方案:使用圖像識(shí)別定位第一個(gè)文件,然后通過(guò)顏色/形狀變化識(shí)別下一個(gè)文件——例如在列表視圖下,文件行之間有輕微的背景色交替??赏ㄟ^(guò)分析截圖像素列直方圖找到行分隔。

替代方案:不依賴視圖,直接使用全選后屏幕上的高亮區(qū)域。當(dāng)Ctrl+A全選時(shí),所有文件圖標(biāo)會(huì)呈現(xiàn)選中狀態(tài)(藍(lán)色半透明)。通過(guò)識(shí)別這種高亮色塊即可精確獲取所有文件位置。

def locate_selected_icons(win):
    """通過(guò)全選高亮定位所有文件"""
    # 全選
    win.activate()
    pyautogui.hotkey('ctrl', 'a')
    time.sleep(0.3)
    
    # 截圖并找出所有藍(lán)色高亮區(qū)域
    region = (win.left, win.top, win.width, win.height)
    screenshot = pyautogui.screenshot(region=region)
    # 使用OpenCV顏色過(guò)濾,找出選中狀態(tài)的矩形框
    # ... 此處省略O(shè)penCV處理代碼 ...
    # 返回每個(gè)選中框的中心坐標(biāo)

4.2 拖拽丟失目標(biāo)窗口

現(xiàn)象:拖拽過(guò)程中,目標(biāo)窗口可能被其他窗口遮擋,或者拖拽速度過(guò)快導(dǎo)致進(jìn)入窗口時(shí)未觸發(fā)“放下”。

優(yōu)化

  1. 拖拽前確保目標(biāo)窗口可見且前置(通過(guò)target_win.activate())。
  2. 拖拽過(guò)程中降低速度duration=0.8)。
  3. 設(shè)置拖拽終點(diǎn)為窗口客戶區(qū)中心偏左,避免觸碰滾動(dòng)條。

4.3 處理大量文件的性能

若文件夾內(nèi)含數(shù)百個(gè)文件,逐個(gè)拖拽將非常耗時(shí)(每個(gè)文件約1秒)。優(yōu)化思路

  • 使用多選:按住Ctrl點(diǎn)擊多個(gè)同類型文件,一次性拖拽。
  • 實(shí)現(xiàn)批量拖拽:識(shí)別多個(gè)選中圖標(biāo),拖拽最后一個(gè)時(shí)同時(shí)移動(dòng)所有選中項(xiàng)。

實(shí)現(xiàn)提示:通過(guò)Ctrl+單擊累積選中,然后拖拽最后一個(gè)文件。

def batch_drag(icon_boxes, target_win):
    """批量拖拽多個(gè)文件"""
    # 先依次Ctrl+點(diǎn)擊每個(gè)圖標(biāo)(選中)
    for box in icon_boxes[:-1]:
        pyautogui.click(box.left+5, box.top+5, button='left')
        time.sleep(0.1)
    # 拖拽最后一個(gè)文件
    pyautogui.mouseDown(icon_boxes[-1].left+5, icon_boxes[-1].top+5)
    time.sleep(0.1)
    pyautogui.moveTo(target_win.left+100, target_win.top+200, duration=0.5)
    pyautogui.mouseUp()

五、測(cè)試與效果評(píng)估

在Windows 11 + 1920x1080 (100%縮放)環(huán)境下,我們對(duì)一個(gè)包含50個(gè)混合類型文件的“下載”文件夾進(jìn)行測(cè)試。

指標(biāo)結(jié)果
窗口準(zhǔn)備耗時(shí)3.2秒
文件掃描與分類耗時(shí)4.5秒
單文件拖拽平均耗時(shí)1.1秒
成功率(首次運(yùn)行)92%
失敗原因圖標(biāo)定位偏差(3個(gè))、拖拽目標(biāo)被遮擋(1個(gè))
日志完整性完整記錄所有操作

失敗分析:圖標(biāo)定位偏差主要出現(xiàn)在“此電腦”快捷方式等非標(biāo)準(zhǔn)文件圖標(biāo)。通過(guò)增加圖標(biāo)模板庫(kù)和降低置信度閾值,可提升至98%。

六、項(xiàng)目擴(kuò)展與思考

6.1 從腳本到工具:添加GUI前端

可將此腳本封裝為帶簡(jiǎn)單Tkinter界面的工具,允許用戶:

  • 拖拽選擇源文件夾和目標(biāo)分類文件夾。
  • 實(shí)時(shí)查看進(jìn)度條。
  • 選擇運(yùn)行模式(模擬/實(shí)際執(zhí)行)。

6.2 跨平臺(tái)兼容性

當(dāng)前代碼對(duì)Windows適配良好,macOS需調(diào)整:

  • 窗口管理:pygetwindow在macOS功能受限,建議遷移至pywinctl。
  • 快捷鍵:復(fù)制粘貼使用command而非ctrl。
  • 文件管理器:Finder與資源管理器差異巨大,需單獨(dú)適配。

6.3 智能閾值自適應(yīng)

利用OpenCV的多尺度匹配與置信度動(dòng)態(tài)調(diào)整:首次運(yùn)行失敗時(shí),自動(dòng)降低置信度并記錄環(huán)境特征,后續(xù)運(yùn)行時(shí)優(yōu)先使用最佳參數(shù)。

以上就是基于Python實(shí)現(xiàn)的自動(dòng)化文件整理腳本的詳細(xì)內(nèi)容,更多關(guān)于Python自動(dòng)化文件整理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • mac下pycharm設(shè)置python版本的圖文教程

    mac下pycharm設(shè)置python版本的圖文教程

    今天小編就為大家分享一篇mac下pycharm設(shè)置python版本的圖文教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • pandas如何處理缺失值

    pandas如何處理缺失值

    這篇文章主要介紹了pandas如何處理缺失值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python下實(shí)現(xiàn)的RSA加密/解密及簽名/驗(yàn)證功能示例

    Python下實(shí)現(xiàn)的RSA加密/解密及簽名/驗(yàn)證功能示例

    這篇文章主要介紹了Python下實(shí)現(xiàn)的RSA加密/解密及簽名/驗(yàn)證功能,結(jié)合具體實(shí)例形式分析了Python中RSA加密、解密的實(shí)現(xiàn)方法及簽名、驗(yàn)證功能的使用技巧,需要的朋友可以參考下
    2017-07-07
  • Django rest framework如何自定義用戶表

    Django rest framework如何自定義用戶表

    Django 默認(rèn)的用戶表很多時(shí)候這些基本字段不夠用,本文介紹在 DRF上使用自定義用戶表進(jìn)行接口訪問(wèn)控制的功能設(shè)計(jì)。感興趣的可以了解一下
    2021-06-06
  • python 使用pandas計(jì)算累積求和的方法

    python 使用pandas計(jì)算累積求和的方法

    今天小編就為大家分享一篇python 使用pandas計(jì)算累積求和的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Python實(shí)現(xiàn)批量讀取HDF多波段柵格數(shù)據(jù)并繪制像元直方圖

    Python實(shí)現(xiàn)批量讀取HDF多波段柵格數(shù)據(jù)并繪制像元直方圖

    這篇文章主要為大家詳細(xì)介紹了如何基于Python語(yǔ)言gdal模塊,實(shí)現(xiàn)多波段HDF柵格圖像文件的讀取、處理與像元值可視化(直方圖繪制)等操作,需要的可以參考一下
    2023-03-03
  • Python代碼風(fēng)格與編程習(xí)慣重要嗎?

    Python代碼風(fēng)格與編程習(xí)慣重要嗎?

    實(shí)現(xiàn)高內(nèi)聚,低耦合、結(jié)構(gòu)清晰不臃腫、可讀性高、數(shù)據(jù)冗余性低、高復(fù)用、易擴(kuò)展的代碼,并非易事.上到設(shè)計(jì)模式,下到某個(gè)類、方法、函數(shù)的構(gòu)造.在這里我分享一下我自己的代碼設(shè)計(jì),編寫風(fēng)格,讓我們互相學(xué)習(xí),需要的朋友可以參考下
    2021-06-06
  • python優(yōu)化數(shù)據(jù)預(yù)處理方法Pandas pipe詳解

    python優(yōu)化數(shù)據(jù)預(yù)處理方法Pandas pipe詳解

    在本文中,我們將重點(diǎn)討論一個(gè)將多個(gè)預(yù)處理操作組織成單個(gè)操作的特定函數(shù):pipe。我將通過(guò)示例方式來(lái)展示如何使用它,讓我們從數(shù)據(jù)創(chuàng)建數(shù)據(jù)幀開始吧
    2021-11-11
  • windows下安裝python的C擴(kuò)展編譯環(huán)境(解決Unable to find vcvarsall.bat)

    windows下安裝python的C擴(kuò)展編譯環(huán)境(解決Unable to find vcvarsall.bat)

    這篇文章主要介紹了windows下安裝python的C擴(kuò)展編譯環(huán)境(解決Unable to find vcvarsall.bat),需要的朋友可以參考下
    2018-02-02
  • python3?requests中文亂碼之壓縮格式問(wèn)題解析

    python3?requests中文亂碼之壓縮格式問(wèn)題解析

    這篇文章主要介紹了python3?requests中文亂碼問(wèn)題之壓縮格式問(wèn)題,我們?cè)谂老x時(shí),經(jīng)常會(huì)遇見中文亂碼問(wèn)題,之前都是編碼格式的問(wèn)題,很少遇見由于壓縮格式造成的編碼混亂問(wèn)題,特記錄下,需要的朋友可以參考下
    2022-08-08

最新評(píng)論

连州市| 白沙| 英超| 泰来县| 德州市| 永登县| 洱源县| 隆化县| 萝北县| 本溪| 犍为县| 鄂州市| 札达县| 交口县| 贡嘎县| 邛崃市| 望奎县| 金湖县| 永寿县| 南城县| 宁河县| 和田县| 青州市| 琼结县| 武宁县| 禄丰县| 营口市| 汉寿县| 乌鲁木齐县| 苏尼特右旗| 泸州市| 洞头县| 渝中区| 新化县| 贵德县| 寿光市| 双桥区| 湾仔区| 汪清县| 泰和县| 广东省|