腳本01-02:批次空白列合併(入門款)

建議檔名:批次空白列合併.py

與腳本01-01不同,清清爽爽,就只是將 TXT 檔內段落間重複的空白列合併,使各段落間只間隔一個空白列 

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


import os


# 合併檔案中的多餘空白列

def merge_blank_lines(file_path):

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

        lines = file.readlines()


    # 合併多餘空白列,只保留一列空白

    merged_lines = []

    previous_blank = False

    for line in lines:

        if line.strip():  # 如果是非空白列

            merged_lines.append(line)

            previous_blank = False

        elif not previous_blank:  # 如果是空白列,且前一行不是空白

            merged_lines.append(line)

            previous_blank = True


    # 將合併後的內容寫回檔案

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

        file.writelines(merged_lines)


# 處理指定資料夾中的檔案

def process_files_in_folder(folder_path):

    for filename in os.listdir(folder_path):

        if filename.endswith('.txt'):

            file_path = os.path.join(folder_path, filename)

            print(f"正在處理檔案: {file_path}")

            merge_blank_lines(file_path)

            print(f"已合併檔案 {filename} 中的多餘空白列")


if __name__ == "__main__":

    folder_path = input("請輸入檔案所在資料夾的路徑(或輸入 'q' 以中止操作):")

    if folder_path.lower() == 'q':

        print("操作已中止。")

        exit()


    process_files_in_folder(folder_path)

    print("所有檔案的多餘空白列合併完成!")