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

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

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

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

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

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

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

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

  1. 核心原理
  2. os.listdir():列出指定文件夾下的所有文件和子文件夾;
    篩選后綴為.txt的文件,排除非 TXT 格式的文件;
    用with語(yǔ)句打開(kāi)文件(自動(dòng)處理文件關(guān)閉,避免資源泄漏),先讀取每個(gè) TXT 文件的內(nèi)容,再寫(xiě)入到合并后的目標(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")
    """
    # 打開(kāi)目標(biāo)文件,以追加模式(a)寫(xiě)入,編碼設(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)容寫(xiě)入目標(biāo)文件
                    out_f.write(content)
                    # 可選:在每個(gè)文件內(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)建一個(gè)文件夾(如test_txt),將需要合并的所有 TXT 文檔放入其中;
    修改路徑:將代碼中的folder_path改為你的 TXT 文件夾路徑(相對(duì)路徑或絕對(duì)路徑均可,絕對(duì)路徑如"C:/Users/xxx/Documents/test_txt");
    運(yùn)行代碼:執(zhí)行 Python 腳本,合并后的文件會(huì)自動(dòng)生成在指定路徑(如merged_all.txt)。
  2. 代碼說(shuō)明
    encoding=‘utf-8’:必須指定編碼格式,否則讀取或?qū)懭胫形臅r(shí)可能出現(xiàn)亂碼;
    ‘a’模式(追加模式):如果目標(biāo)文件已存在,新內(nèi)容會(huì)追加到文件末尾;若需覆蓋原有內(nèi)容,可改為’w’模式(寫(xiě)入模式);
    可選的out_f.write(’\n\n’):在每個(gè)文件內(nèi)容后添加兩個(gè)換行符,讓不同文檔的內(nèi)容分隔更清晰,根據(jù)需求可刪除。

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

  1. 如果不需要合并文件夾下所有 TXT,而是需要按特定規(guī)則篩選(如文件名包含 “數(shù)據(jù)”“2024” 等關(guān)鍵詞),推薦使用glob模塊。它支持通配符匹配,能更靈活地選擇目標(biāo)文件。
  2. 核心原理
    glob.glob():根據(jù)通配符模式匹配文件路徑,返回符合條件的文件列表;
    支持的通配符:(匹配任意字符)、?(匹配單個(gè)字符)、[](匹配指定范圍內(nèi)的字符),例如"test_txt/2024.txt"可匹配test_txt文件夾下所有以 “2024” 開(kāi)頭的 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文件,請(qǐng)檢查路徑和模式是否正確!")
        return
    
    # 寫(xiě)入目標(biāo)文件
    with open(output_file, 'w', encoding='utf-8') as out_f:
        for file_path in txt_files:
            # 獲取文件名(用于添加標(biāo)識(shí),可選)
            file_name = file_path.split('\\')[-1]  #  Windows系統(tǒng)用'\\',Linux/Mac用'/'
            # 寫(xiě)入文件名作為標(biāo)識(shí)(方便區(qū)分不同文件的內(nèi)容)
            out_f.write(f"=== 開(kāi)始:{file_name} ===\n")
            # 讀取并寫(xiě)入文件內(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())
            # 寫(xiě)入結(jié)束標(biāo)識(shí)



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

示例1:合并"test_txt"文件夾下所有以"2024"開(kāi)頭的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àn)匹配模式示例

通配符模式

匹配結(jié)果

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

優(yōu)勢(shì)說(shuō)明

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

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

路徑問(wèn)題:

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

編碼一致性:

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

大文件處理:

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

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

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

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

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

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

按文件修改時(shí)間排序合并:

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

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

去除重復(fù)內(nèi)容:
若多個(gè) TXT 文件有重復(fù)內(nèi)容,可通過(guò)集合(set)去重(注意:集合會(huì)打亂順序,需根據(jù)需求判斷是否適用):
# 去重示例(適用于無(wú)順序要求的場(chǎng)景)
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)容寫(xiě)入目標(biāo)文件
with open(output_file, 'w', encoding='utf-8') as out_f:
    out_f.writelines(all_content)

批量處理子文件夾:

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

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

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

六、總結(jié)

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

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

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

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

相關(guān)文章

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

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

    這篇文章主要為大家詳細(xì)介紹了python中使用正則表達(dá)式的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    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
  • 最新評(píng)論

    塘沽区| 什邡市| 比如县| 津南区| 万荣县| 攀枝花市| 城固县| 博湖县| 沐川县| 富阳市| 广灵县| 西平县| 霸州市| 思南县| 舒城县| 会理县| 崇明县| 冷水江市| 富民县| 新乡市| 隆林| 奉贤区| 万安县| 噶尔县| 新巴尔虎左旗| 高安市| 邵武市| 绥芬河市| 安顺市| 河南省| 许昌县| 岑溪市| 都江堰市| 滦南县| 乐亭县| 花莲县| 辽宁省| 蒲城县| 柞水县| 团风县| 遂溪县|