腳本01-03:批次空白列移除

建議檔名:批次空白列移除.py
將 TXT 檔內段落間的空白列全數移除,使各段落間緊密相連。

程式碼:
(複製以下文字,貼入純文字檔中,存檔後將副檔名設定為 .py)


import os


def remove_blank_lines(folder_path):

    """

    批次處理指定資料夾內的所有 .txt 檔案,移除檔案中的所有空白行,包括檔案結尾的空白行。

    """

    for root, _, files in os.walk(folder_path):  # 遍歷資料夾及其子資料夾內的所有檔案

        for file in files:

            file_path = os.path.join(root, file)  # 獲取檔案的完整路徑


            # 只處理 .txt 檔案

            if file.endswith('.txt'):

                with open(file_path, 'r', encoding='utf-8') as f:

                    lines = f.readlines()  # 讀取檔案的所有行


                # 過濾掉空白行

                cleaned_lines = [line.rstrip() for line in lines if line.strip()]


                # 檢查是否最後一行有空白且是換行符,去除

                if cleaned_lines and cleaned_lines[-1] == '':

                    cleaned_lines.pop()  # 刪除最後一行空白


                # 寫回檔案,覆蓋原始內容

                with open(file_path, 'w', encoding='utf-8') as f:

                    if cleaned_lines:

                        f.write('\n'.join(cleaned_lines))  # 不加額外的換行符

                    else:

                        f.write('')  # 若沒有有效行,清空檔案


                print(f"已處理: {file_path}")  # 輸出處理成功的檔案路徑


# 用戶輸入資料夾路徑

folder_path = input("請輸入資料夾路徑(或輸入 'q' 退出):")

if folder_path.lower() != 'q':  # 支援用戶輸入 'q' 來退出操作

    if os.path.exists(folder_path):  # 確保輸入的資料夾路徑有效

        remove_blank_lines(folder_path)

    else:

        print("資料夾路徑無效!")  # 如果路徑不存在,提示錯誤訊息