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

Python輕松合并多個TXT文檔的實(shí)戰(zhàn)指南

 更新時間:2025年12月08日 10:09:26   作者:普通網(wǎng)友  
在日常工作和學(xué)習(xí)中,我們經(jīng)常會遇到需要合并多個TXT文檔的場景,如果手動復(fù)制粘貼,不僅效率低下,還容易出現(xiàn)遺漏或錯誤,而使用Python,只需幾行代碼,就能快速、準(zhǔn)確地完成TXT文檔的合并操作,本文將詳細(xì)介紹兩種常用的Python合并TXT文檔的方法,需要的朋友可以參考下

在日常工作和學(xué)習(xí)中,我們經(jīng)常會遇到需要合并多個 TXT 文檔的場景。比如,整理分散在不同文檔中的實(shí)驗(yàn)數(shù)據(jù)、匯總多份日志文件、整合多篇文檔的內(nèi)容等。如果手動復(fù)制粘貼,不僅效率低下,還容易出現(xiàn)遺漏或錯誤。而使用 Python,只需幾行代碼,就能快速、準(zhǔn)確地完成 TXT 文檔的合并操作。本文將詳細(xì)介紹兩種常用的 Python 合并 TXT 文檔的方法,無論你是 Python 新手還是有一定基礎(chǔ)的開發(fā)者,都能輕松掌握。

一、為什么選擇 Python 合并 TXT 文檔?

在介紹具體方法之前,先聊聊為什么推薦用 Python 來做這件事。首先,Python 語法簡潔易懂,即使是零基礎(chǔ)的人,花幾分鐘就能看懂核心邏輯;其次,Python 的標(biāo)準(zhǔn)庫中包含了處理文件操作的模塊(如os、glob),無需額外安裝第三方庫,開箱即用;最后,Python 的靈活性強(qiáng),不僅能實(shí)現(xiàn)簡單的文檔合并,還能根據(jù)需求添加過濾條件、格式處理等功能,滿足多樣化的需求。

二、方法一:使用os模塊遍歷文件夾合并

這種方法適用于需要合并某個文件夾下所有 TXT 文檔的場景,核心思路是先遍歷文件夾找到所有 TXT 文件,再逐一讀取內(nèi)容并寫入目標(biāo)文檔。

  1. 核心原理
  2. os.listdir():列出指定文件夾下的所有文件和子文件夾;
    篩選后綴為.txt的文件,排除非 TXT 格式的文件;
    用with語句打開文件(自動處理文件關(guān)閉,避免資源泄漏),先讀取每個 TXT 文件的內(nèi)容,再寫入到合并后的目標(biāo)文件中。
  3. 完整代碼
import os

def merge_txt_files(folder_path, output_file):
    """
    合并指定文件夾下的所有TXT文件到目標(biāo)文件
    :param folder_path: 存放TXT文件的文件夾路徑
    :param output_file: 合并后的目標(biāo)文件路徑(如"merged.txt")
    """
    # 打開目標(biāo)文件,以追加模式(a)寫入,編碼設(shè)為utf-8避免中文亂碼
    with open(output_file, 'a', encoding='utf-8') as out_f:
        # 遍歷文件夾下的所有文件
        for file_name in os.listdir(folder_path):
            # 篩選出后綴為.txt的文件
            if file_name.endswith('.txt'www.toLu120.com  m.toLu120.com  zuqiu.toLu120.com  web.toLu120.com  gov.a.toLu120.com):
                # 拼接完整的文件路徑
                file_path = os.path.join(folder_path, file_name)
                # 讀取當(dāng)前TXT文件的內(nèi)容
                with open(file_path, 'r', encoding='utf-8') as in_f:
                    content = in_f.read()
                    # 將內(nèi)容寫入目標(biāo)文件
                    out_f.write(content)
                    # 可選:在每個文件內(nèi)容后添加換行符,避免內(nèi)容連在一起
                    out_f.write('\n\n')
        print(f"合并完成!合并后的文件已保存至:{output_file}")

示例:合并"test_txt"文件夾下的所有TXT,輸出到"merged_all.txt"

merge_txt_files(folder_path=“test_txt”, output_file=“merged_all.txt”)

  1. 操作步驟
    準(zhǔn)備文件夾:創(chuàng)建一個文件夾(如test_txt),將需要合并的所有 TXT 文檔放入其中;
    修改路徑:將代碼中的folder_path改為你的 TXT 文件夾路徑(相對路徑或絕對路徑均可,絕對路徑如"C:/Users/xxx/Documents/test_txt");
    運(yùn)行代碼:執(zhí)行 Python 腳本,合并后的文件會自動生成在指定路徑(如merged_all.txt)。
  2. 代碼說明
    encoding=‘utf-8’:必須指定編碼格式,否則讀取或?qū)懭胫形臅r可能出現(xiàn)亂碼;
    ‘a’模式(追加模式):如果目標(biāo)文件已存在,新內(nèi)容會追加到文件末尾;若需覆蓋原有內(nèi)容,可改為’w’模式(寫入模式);
    可選的out_f.write(’\n\n’):在每個文件內(nèi)容后添加兩個換行符,讓不同文檔的內(nèi)容分隔更清晰,根據(jù)需求可刪除。

三、方法二:使用glob模塊精準(zhǔn)匹配文件

  1. 如果不需要合并文件夾下所有 TXT,而是需要按特定規(guī)則篩選(如文件名包含 “數(shù)據(jù)”“2024” 等關(guān)鍵詞),推薦使用glob模塊。它支持通配符匹配,能更靈活地選擇目標(biāo)文件。
  2. 核心原理
    glob.glob():根據(jù)通配符模式匹配文件路徑,返回符合條件的文件列表;
    支持的通配符:(匹配任意字符)、?(匹配單個字符)、[](匹配指定范圍內(nèi)的字符),例如"test_txt/2024.txt"可匹配test_txt文件夾下所有以 “2024” 開頭的 TXT 文件。
  3. 完整代碼
import glob

def merge_specific_txt(pattern, output_file):
    """
    合并符合通配符模式的TXT文件到目標(biāo)文件
    :param pattern: 通配符模式(如"test_txt/2024*.txt")
    :param output_file: 合并后的目標(biāo)文件路徑
    """
    # 找到所有符合模式的TXT文件
    txt_files = glob.glob(zhibo.kaojiaxiao.com  zb.kaojiaxiao.com  tsl.kaojiaxiao.com  tv.kaojiaxiao.com  pattern, recursive=False)
    if not txt_files:
        print("未找到符合條件的TXT文件,請檢查路徑和模式是否正確!")
        return
    
    # 寫入目標(biāo)文件
    with open(output_file, 'w', encoding='utf-8') as out_f:
        for file_path in txt_files:
            # 獲取文件名(用于添加標(biāo)識,可選)
            file_name = file_path.split('\\')[-1]  #  Windows系統(tǒng)用'\\',Linux/Mac用'/'
            # 寫入文件名作為標(biāo)識(方便區(qū)分不同文件的內(nèi)容)
            out_f.write(f"=== 開始:{file_name} ===\n")
            # 讀取并寫入文件內(nèi)容
            with open(share.kaojiaxiao.com  fxfdj.com  www.fxfdj.com  m.fxfdj.com  wap.fxfdj.comfile_path, 'r', encoding='utf-8') as in_f:
                out_f.write(in_f.read())
            # 寫入結(jié)束標(biāo)識



            out_f.write(f"\n=== 結(jié)束:{file_name} ===\n\n")
        print(f"合并完成!共合并{len(txt_files)}個TXT文件,結(jié)果保存至:{output_file}")

示例1:合并"test_txt"文件夾下所有以"2024"開頭的TXT,輸出到"merged_2024.txt"

merge_specific_txt(pattern="test_txt/2024*.txt", output_file="merged_2024.txt")

示例2:合并"test_txt"文件夾下所有包含"數(shù)據(jù)"的TXT,輸出到"merged_data.txt"

# merge_specific_txt(pattern="test_txt/*數(shù)據(jù)*.txt", output_file="merged_data.txt")

常見匹配模式示例

通配符模式

匹配結(jié)果

  • test_txt/.txt
  • test_txt下所有 TXT 文件(同方法一效果)
  • test_txt/2024.txt
  • test_txt下以 “2024” 開頭的 TXT 文件
  • test_txt/數(shù)據(jù).txt
  • test_txt下文件名包含 “數(shù)據(jù)” 的 TXT 文件
  • test_txt/?.txt
  • test_txt下文件名只有 1 個字符的 TXT 文件

優(yōu)勢說明

相比os模塊,glob的優(yōu)勢在于精準(zhǔn)篩選:當(dāng)需要按文件名規(guī)則合并部分 TXT 時,無需手動判斷,直接通過通配符即可實(shí)現(xiàn),代碼更簡潔,擴(kuò)展性更強(qiáng)。

四、注意事項:避免踩坑的關(guān)鍵細(xì)節(jié)

路徑問題:

相對路徑:代碼文件與 TXT 文件夾在同一目錄時,直接寫文件夾名(如"test_txt")即可;
絕對路徑:若不在同一目錄,需寫完整路徑(Windows 用"C:/a/b",Linux/Mac 用"/home/a/b"),注意 Windows 路徑中的反斜杠需寫為\或用原始字符串(如r"C:\a\b")。

編碼一致性:

確保所有待合并的 TXT 文件編碼格式一致(如均為utf-8或gbk),若部分文件是gbk編碼,需將代碼中的encoding='utf-8’改為encoding=‘gbk’,否則會報錯 “UnicodeDecodeError”。

大文件處理:

若待合并的 TXT 文件較大(如超過 1GB),不建議用read()一次性讀取全部內(nèi)容(可能占用過多內(nèi)存),可改為按行讀?。?/p>

# 大文件按行讀取的寫法
with open(file_path, 'r', encoding='utf-8') as in_f:
    for line in in_f:
        out_f.write(line)

文件覆蓋風(fēng)險:

若目標(biāo)文件(output_file)已存在,使用’w’模式會直接覆蓋原有內(nèi)容,建議先檢查文件是否存在,或用’a’模式追加(需注意是否需要去重)。

五、擴(kuò)展需求:讓合并功能更強(qiáng)大

除了基礎(chǔ)的合并功能,我們還可以根據(jù)實(shí)際需求擴(kuò)展代碼,比如:

按文件修改時間排序合并:

在讀取文件前,按文件的修改時間對 TXT 文件列表排序,確保合并順序符合時間邏輯:

# 按修改時間排序(最新修改的文件在后)
txt_files.sort(key=lambda x: os.path.getmtime(x))

去除重復(fù)內(nèi)容:
若多個 TXT 文件有重復(fù)內(nèi)容,可通過集合(set)去重(注意:集合會打亂順序,需根據(jù)需求判斷是否適用):
# 去重示例(適用于無順序要求的場景)
all_content = set()
for file_path in txt_files:
    with open( vip.fxfdj.com  zhibo.fxfdj.com  zb.fxfdj.com  tsl.fxfdj.com  tv.fxfdj.com  share.fxfdj.com  toLu120.com file_path, 'r', encoding='utf-8') as in_f:
        all_content.update(in_f.readlines())
# 將去重后的內(nèi)容寫入目標(biāo)文件
with open(output_file, 'w', encoding='utf-8') as out_f:
    out_f.writelines(all_content)

批量處理子文件夾:

若 TXT 文件分散在多個子文件夾中,可在glob.glob()中設(shè)置recursive=True,并使用**匹配所有子文件夾:

匹配"test_txt"及其所有子文件夾下的TXT文件

txt_files = glob.glob(“test_txt/**/*.txt”, recursive=True)

六、總結(jié)

Python 合并 TXT 文檔的核心是文件讀取與寫入,通過os或glob模塊實(shí)現(xiàn)文件篩選,再結(jié)合with語句安全操作文件。兩種方法各有優(yōu)勢:

os模塊:適合合并指定文件夾下的所有 TXT,代碼直觀;
glob模塊:適合按文件名規(guī)則篩選 TXT,靈活性更高。

無論你是需要快速合并幾份文檔,還是批量處理成百上千個文件,Python 都能幫你節(jié)省大量時間。趕緊試試上面的代碼,根據(jù)自己的需求調(diào)整參數(shù),體驗(yàn)高效處理文本的樂趣吧!如果在使用過程中遇到問題,歡迎在評論區(qū)留言討論~

以上就是Python輕松合并多個TXT文檔的實(shí)戰(zhàn)指南的詳細(xì)內(nèi)容,更多關(guān)于Python合并TXT文檔的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python 使用cycle構(gòu)造無限循環(huán)迭代器

    python 使用cycle構(gòu)造無限循環(huán)迭代器

    這篇文章主要介紹了python 使用cycle構(gòu)造無限循環(huán)迭代器的方法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-12-12
  • python實(shí)現(xiàn)兩張圖片的像素融合

    python實(shí)現(xiàn)兩張圖片的像素融合

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)兩張圖片的像素融合,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Python的print函數(shù)如何覆蓋打印

    Python的print函數(shù)如何覆蓋打印

    這篇文章主要介紹了Python的print函數(shù)如何覆蓋打印問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python處理xls文件openpyxl基礎(chǔ)操作

    python處理xls文件openpyxl基礎(chǔ)操作

    這篇文章主要為大家介紹了python處理xls文件openpyxl基礎(chǔ)操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Python3爬蟲中識別圖形驗(yàn)證碼的實(shí)例講解

    Python3爬蟲中識別圖形驗(yàn)證碼的實(shí)例講解

    在本篇內(nèi)容里小編給大家分享的是關(guān)于Python3爬蟲中識別圖形驗(yàn)證碼的實(shí)例講解內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-07-07
  • Python locust工具使用詳解

    Python locust工具使用詳解

    這篇文章主要介紹了Python locust工具使用詳解,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • 解決django前后端分離csrf驗(yàn)證的問題

    解決django前后端分離csrf驗(yàn)證的問題

    今天小編就為大家分享一篇解決django前后端分離csrf驗(yàn)證的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • 淺析python中的分片與截斷序列

    淺析python中的分片與截斷序列

    這篇文章主要介紹python對序列的分片方法。通過分片規(guī)則可以很簡單的處理一些復(fù)雜的for循環(huán)操作。很有借鑒價值,有需要的可以一起參考學(xué)習(xí)。
    2016-08-08
  • python中使用正則表達(dá)式的方法詳解

    python中使用正則表達(dá)式的方法詳解

    這篇文章主要為大家詳細(xì)介紹了python中使用正則表達(dá)式的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • python機(jī)器學(xué)習(xí)Logistic回歸原理推導(dǎo)

    python機(jī)器學(xué)習(xí)Logistic回歸原理推導(dǎo)

    這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)Logistic回歸原理推導(dǎo),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06

最新評論

宁安市| 乐安县| 大竹县| 肥乡县| 东源县| 开封县| 马关县| 福建省| 苏尼特左旗| 日土县| 芮城县| 遂宁市| 湘西| 平邑县| 新化县| 静海县| 民勤县| 云和县| 镇巴县| 新巴尔虎右旗| 广西| 丰顺县| 突泉县| 永安市| 九寨沟县| 湘阴县| 汉中市| 思茅市| 三门县| 玉龙| 区。| 平乡县| 锡林浩特市| 德令哈市| 通河县| 景德镇市| 安平县| 永昌县| 祁连县| 安康市| 石渠县|