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

基于python開發(fā)文件常見處理工具

 更新時間:2025年06月30日 08:54:10   作者:岫珩  
這篇文章主要為大家詳細介紹了如何使用python開發(fā)一個文件處理工具,包含文件讀寫,后綴獲取,壓縮和解壓,文件夾遍歷等操作,需要的可以了解下

1. 直接食用代碼

1.1 讀文件

讀取文件中內(nèi)容

# 讀取文件內(nèi)容 file_path: 文件路徑
def read_file(file_path):
    # 打開文件
    with open(file_path, 'r', encoding='utf-8') as f:
        # 讀取文件內(nèi)容
        content = f.read()
        # 返回文件內(nèi)容
        return content

1.2 寫文件

將內(nèi)容寫到文件中

# 將內(nèi)容寫入文件 file_path: 文件路徑, content: 文件內(nèi)容
def write_file(file_path, content):
    # 創(chuàng)建文件
    with open(file_path, 'w', encoding='utf-8') as f:
        # 寫入內(nèi)容
        f.write(content)
        # 關閉文件
        f.close()

1.3 獲取文件后綴

判斷文件是否為壓縮文件

import os
# 判斷文件是否為壓縮文件 file_path 文件路徑
def is_pack(file_path):
    # 獲取文件擴展名
    ext = os.path.splitext(file_path)[1].lower()
    # 判斷文件擴展名
    if ext in ['.zip', '.rar', '.7z']:
        # 是壓縮文件則返回True
        return True

1.4 打包文件(壓縮)

壓縮文件

import os
import zipfile
# 將指定文件夾打包為 zip 文件 folder_path: 待壓縮文件夾路徑, output_path: 壓縮文件保存路徑
def zip_folder(folder_path, output_path):
    # folder_path: 要打包的文件夾路徑
    # output_path: 輸出的 zip 文件路徑
    # 創(chuàng)建 zip 文件
    with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zip_file:
        # 遍歷文件夾
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                # 獲取文件絕對路徑
                file_path = os.path.join(root, file)
                # 獲取文件在zip文件中的相對路徑
                reletive_path = os.path.relpath(file_path, folder_path)
                # 添加文件到zip文件中
                zip_file.write(file_path, os.path.relpath(file_path, folder_path))

1.5 解壓

解壓縮文件

import subprocess
import os
import zipfile
# 解壓縮文件 filepath: 壓縮文件路徑, target_folder: 解壓目標路徑
def unpack(filepath, target_folder):

    # 以上注釋代碼的整合 目的為了獲取壓縮包文件名(不帶后綴)
    file_name_pre = os.path.splitext(os.path.basename(filepath))[0]
    print("filepath----> ",filepath)
    print("file_name_pre----> ",file_name_pre)
    print("target_folder----> ",target_folder)
    # target_folder = os.path.join(target_folder, file_name_pre)

    # 本地winrar命令集成
    command = [
            # 本地WinRAR.exe文件路徑
            'C:\\Program Files\\WinRAR\\WinRAR.exe',
            # 解壓并保留完整目錄結(jié)構(gòu)
            'x',           
            # 傳入源RAR文件的絕對路徑(引號包裹,防止路徑中有空格)
            os.path.abspath(filepath),
            # 目標目錄(確保路徑以一個反斜杠結(jié)束,否則WinRAR會出錯),如果該參數(shù)省略,則會默認為當前目錄
            target_folder.rstrip('\\') + '\\',
            # 覆蓋已存在的文件
            '-o+',         
            # 將壓縮包名稱作為子目錄添加到目標路徑中,如果添加該參數(shù),則壓縮包名稱會作為子目錄添加到目標路徑中,產(chǎn)生兩層一樣的目錄
            # '-ad',
            # 后臺運行
            # '-ibck',       
            # 自動確認所有提示
            '-y'           
        ]
    
    print("正在執(zhí)行命令:", " ".join(command))

    # 運行命令 subprocess本身會處理空格問題
    result = subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)

    print("命令執(zhí)行完畢")
    # 因為解壓后的目錄是子目錄,故指定目錄為解壓后的目錄, 即文件均在下面這個文件目錄中
    target_folder = target_folder+"\\"+file_name_pre
    print('target_folder2:',target_folder)

1.6 遍歷文件夾

獲取文件夾中所有文件列表

import os
# 遍歷文件夾,獲取文件夾下所有文件列表 folder_path: 文件夾路徑
def iteration_folder(folder_path):
    
    # 獲取目標目錄下的所有文件路徑
    # 定義一個空列表,用于存儲所有文件路徑
    file_list = []
    # 遍歷指定目錄下的所有文件和子目錄
    for root, dirs, files in os.walk(folder_path):
        # 遍歷文件
        for file in files:
            print('file---> ',file)
            # 獲取文件路徑
            file_path = os.path.join(root, file)

            # 將文件路徑添加到列表中
            file_list.append(file_path)
    print('----------> file_list:',file_list)

    # 返回文件列表
    return file_list

2. 完整詳解代碼及示例演示

2.1 完整代碼

file_utils.py

# python 工具 判斷是否為壓縮文件、讀取文件、寫文件、解壓縮、遍歷獲取文件夾下所有文件


# 所需引入的庫
import subprocess
import os
import zipfile

# 讀取文件內(nèi)容 file_path: 文件路徑
def read_file(file_path):
    # 打開文件
    with open(file_path, 'r', encoding='utf-8') as f:
        # 讀取文件內(nèi)容
        content = f.read()
        # 返回文件內(nèi)容
        return content


# 將內(nèi)容寫入文件 file_path: 文件路徑, content: 文件內(nèi)容
def write_file(file_path, content):
    # 創(chuàng)建文件
    with open(file_path, 'w', encoding='utf-8') as f:
        # 寫入內(nèi)容
        f.write(content)
        # 關閉文件
        f.close()


# 判斷文件是否為壓縮文件 file_path 文件路徑
def is_pack(file_path):
    # 獲取文件擴展名
    ext = os.path.splitext(file_path)[1].lower()
    # 判斷文件擴展名
    if ext in ['.zip', '.rar', '.7z']:
        # 是壓縮文件則返回True
        return True



# 將指定文件夾打包為 zip 文件 folder_path: 待壓縮文件夾路徑, output_path: 壓縮文件保存路徑
def zip_folder(folder_path, output_path):
    # folder_path: 要打包的文件夾路徑
    # output_path: 輸出的 zip 文件路徑
    # 創(chuàng)建 zip 文件
    with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zip_file:
        # 遍歷文件夾
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                # 獲取文件絕對路徑
                file_path = os.path.join(root, file)
                # 獲取文件在zip文件中的相對路徑
                reletive_path = os.path.relpath(file_path, folder_path)
                # 添加文件到zip文件中
                zip_file.write(file_path, os.path.relpath(file_path, folder_path))


# 解壓縮文件 filepath: 壓縮文件路徑, target_folder: 解壓目標路徑
def unpack(filepath, target_folder):

    # 以上注釋代碼的整合 目的為了獲取壓縮包文件名(不帶后綴)
    file_name_pre = os.path.splitext(os.path.basename(filepath))[0]
    print("filepath----> ",filepath)
    print("file_name_pre----> ",file_name_pre)
    print("target_folder----> ",target_folder)
    # target_folder = os.path.join(target_folder, file_name_pre)

    # 本地winrar命令集成
    command = [
            # 本地WinRAR.exe文件路徑
            'C:\\Program Files\\WinRAR\\WinRAR.exe',
            # 解壓并保留完整目錄結(jié)構(gòu)
            'x',           
            # 傳入源RAR文件的絕對路徑(引號包裹,防止路徑中有空格)
            os.path.abspath(filepath),
            # 目標目錄(確保路徑以一個反斜杠結(jié)束,否則WinRAR會出錯),如果該參數(shù)省略,則會默認為當前目錄
            target_folder.rstrip('\\') + '\\',
            # 覆蓋已存在的文件
            '-o+',         
            # 將壓縮包名稱作為子目錄添加到目標路徑中,如果添加該參數(shù),則壓縮包名稱會作為子目錄添加到目標路徑中,產(chǎn)生兩層一樣的目錄
            # '-ad',
            # 后臺運行
            # '-ibck',       
            # 自動確認所有提示
            '-y'           
        ]
    
    print("正在執(zhí)行命令:", " ".join(command))

    # 運行命令 subprocess本身會處理空格問題
    result = subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)

    print("命令執(zhí)行完畢")
    # 因為解壓后的目錄是子目錄,故指定目錄為解壓后的目錄, 即文件均在下面這個文件目錄中
    target_folder = target_folder+"\\"+file_name_pre
    print('target_folder2:',target_folder)

# 遍歷文件夾,獲取文件夾下所有文件列表 folder_path: 文件夾路徑
def iteration_folder(folder_path):
    
    # 獲取目標目錄下的所有文件路徑
    # 定義一個空列表,用于存儲所有文件路徑
    file_list = []
    # 遍歷指定目錄下的所有文件和子目錄
    for root, dirs, files in os.walk(folder_path):
        # 遍歷文件
        for file in files:
            print('file---> ',file)
            # 獲取文件路徑
            file_path = os.path.join(root, file)

            # 將文件路徑添加到列表中
            file_list.append(file_path)
    print('----------> file_list:',file_list)

    # 返回文件列表
    return file_list





if __name__ == '__main__':

    # 1. 讀取文件內(nèi)容
    print("<--------文件讀取測試--------> ")
    content = read_file(r'D:\重載\TEST2ZIP\TEST2ZIP\test1.txt')
    print("content----> ",content)
    # 2. 寫入文件內(nèi)容
    write_file(r'D:\重載\TEST2ZIP\TEST2ZIP\test4.txt',content)


    # 3. 檢測文件是否為壓縮文件
    print("<--------判斷類型是否為壓縮包--------> ")
    is_zip1 = is_pack(r'D:\重載\TEST2ZIP\TEST2ZIP\test1.txt')
    print('----------> is_zip1:',is_zip1)
    is_zip2 = is_pack(r'D:\重載\TEST2ZIP\TEST2ZIP.rar')
    print('----------> is_zip2:',is_zip2)
    # 特殊測試,該文件不存在,同樣可以得到結(jié)果
    is_zip3 = is_pack(r'D:\重載\TEST2ZIP\TEST2ZIP\test1.zip')
    print('----------> is_zip3:',is_zip3)


    # 4. 解壓縮文件
    print("<--------判斷類型是否為壓縮包--------> ")
    unpack(r'D:\重載\TEST2ZIP\TEST2ZIP.rar', r'D:\重載\TEST2ZIP\rar_test')

    # 5. 壓縮文件
    # print("<--------判斷類型是否為壓縮包--------> ")

    # 6. 獲取指定目錄下的所有文件
    # print("<--------判斷類型是否為壓縮包--------> ")

2.2 示例演示

2.2.1 讀文件

執(zhí)行代碼,輸出讀取結(jié)果

如圖

2.2.2 寫文件

執(zhí)行代碼,查看結(jié)果

指定位置查看是否生成文件

2.2.3 獲取文件后綴

判斷文件是否為壓縮包

執(zhí)行代碼,查看結(jié)果

2.2.4 解壓文件

執(zhí)行代碼,查看指定目錄是否有解壓后的文件

結(jié)果如下

注意,這里解壓縮后的目錄是子目錄,即指定目錄下會生成一個子目錄存放文件

2.2.5 壓縮文件

執(zhí)行代碼查看結(jié)果

如圖壓縮文件生成

2.2.6 遍歷文件夾

獲取文件夾中所有文件的列表

執(zhí)行代碼,查看結(jié)果

對比文件夾目錄中的文件

到此這篇關于基于python開發(fā)文件常見處理工具的文章就介紹到這了,更多相關python文件處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 50行Python代碼實現(xiàn)視頻中物體顏色識別和跟蹤(必須以紅色為例)

    50行Python代碼實現(xiàn)視頻中物體顏色識別和跟蹤(必須以紅色為例)

    本文通過50行Python代碼實現(xiàn)視頻中物體顏色識別和跟蹤效果,通過實例截圖和實例代碼給大家講解的非常詳細,需要的朋友可以參考下
    2019-11-11
  • python dlib人臉識別代碼實例

    python dlib人臉識別代碼實例

    這篇文章主要介紹了python dlib人臉識別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • 優(yōu)化Python代碼使其加快作用域內(nèi)的查找

    優(yōu)化Python代碼使其加快作用域內(nèi)的查找

    這篇文章主要介紹了優(yōu)化Python代碼使其加快作用域內(nèi)的搜索,文中介紹了CPython相關的C代碼來對查找功能進行優(yōu)化,加快搜索的速度,需要的朋友可以參考下
    2015-03-03
  • vscode?配置使用pyqt5的詳細步驟

    vscode?配置使用pyqt5的詳細步驟

    本文給大家介紹vscode?配置使用pyqt5的詳細步驟,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-10-10
  • 使用python實現(xiàn)個性化詞云的方法

    使用python實現(xiàn)個性化詞云的方法

    最近看到可視化的詞云,看到網(wǎng)上也很多這樣的工具,但是都不怎么完美,有些不支持中文,有的中文詞頻統(tǒng)計得莫名其妙、有的不支持自定義形狀、所有的都不能自定義顏色,于是網(wǎng)上找了一下,決定用python繪制詞云
    2017-06-06
  • Python psutil模塊簡單使用實例

    Python psutil模塊簡單使用實例

    這篇文章主要介紹了Python psutil模塊簡單使用實例,本文直接給出使用腳本,實現(xiàn)查看cpu的信息、查看內(nèi)存信息、查看系統(tǒng)啟動時間、查看網(wǎng)卡信息等,需要的朋友可以參考下
    2015-04-04
  • Python中的異常處理:try?except?Exception?as?e解決辦法

    Python中的異常處理:try?except?Exception?as?e解決辦法

    這篇文章主要介紹了Python中的異常處理機制,包括try、except、finally語句的基本用法和高級用法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-04-04
  • Flask和Django框架中自定義模型類的表名、父類相關問題分析

    Flask和Django框架中自定義模型類的表名、父類相關問題分析

    這篇文章主要介紹了Flask和Django框架中自定義模型類的表名、父類相關問題,結(jié)合實例形式對比分析了Flask框架與Django框架表名定義方式的不同之處,并簡單描述了框架的父類繼承問題,需要的朋友可以參考下
    2018-07-07
  • python搭建簡易服務器分析與實現(xiàn)

    python搭建簡易服務器分析與實現(xiàn)

    本文將介紹python搭建簡易服務器實現(xiàn)步驟,需要了解的朋友可以參考下
    2012-12-12
  • 壓縮包密碼破解示例分享(類似典破解)

    壓縮包密碼破解示例分享(類似典破解)

    有一個壓縮包密碼忘了,寫了一個小腳本實現(xiàn)一個解密的功能,輸入自己常用密碼中的單詞后,腳本將這些密碼組合嘗試解壓壓縮包
    2014-01-01

最新評論

图木舒克市| 双辽市| 喜德县| 洪雅县| 治县。| 定州市| 绩溪县| 应城市| 维西| 古浪县| 富蕴县| 德惠市| 朔州市| 辽阳县| 同仁县| 定陶县| 泽普县| 象山县| 花垣县| 隆德县| 白朗县| 循化| 荣昌县| 霸州市| 洛浦县| 台山市| 丹东市| 韶山市| 吉林市| 松溪县| 陇南市| 浠水县| 北海市| 万全县| 东源县| 澎湖县| 佛学| 思南县| 塔河县| 衡阳市| 九龙坡区|