建議檔名: 批次頁首或頁尾插入分隔字元.py
用法如下:
在【命令提示字元】執行程式碼:
F:\_自訂製書工具\批次插入分隔線>批次頁首或頁尾插入分隔字元.py
請輸入檔案所在資料夾的路徑(或輸入 'q' 以中止操作):G:\輸出資料夾
請輸入分隔符字元(如******):***
是否要在開頭插入分隔符?輸入 'Y' 以在開頭插入,直接按 Enter 跳過,或輸入 'q' 以中止操作:y
是否也要在結尾插入分隔符?輸入 'Y' 以在結尾插入,直接按 Enter 跳過,或輸入 'q' 以中止操作:y
處理檔案: G:\輸出資料夾\001_.txt
已在檔案 001_.txt 中插入分隔符
……
上例是以三個連續全形【***】米字號作為分隔,請隨意插入其他自選字串(如書名)
程式碼:
(複製以下文字,貼入純文字檔中,存檔後將副檔名設定為 .py)
import os
# 在指定位置插入分隔字元(如******)
def insert_separator(file_path, separator, at_start=False, at_end=False):
with open(file_path, 'r', encoding='utf-8') as file:
lines = file.readlines()
# 如果是插入在結尾,則直接在最後加上分隔字元
if at_end:
lines.append(f"{separator}\n")
# 如果是插入在第一行之前,則將分隔字元插入到開頭
if at_start:
lines.insert(0, f"{separator}\n")
# 保存修改後的檔案
with open(file_path, 'w', encoding='utf-8') as file:
file.writelines(lines)
# 輸入檢查,確保用戶輸入有效字元
def get_valid_input(prompt):
while True:
user_input = input(prompt)
if user_input.lower() == 'q': # 用戶輸入 'q' 表示中止
print("操作已中止。")
exit() # 終止程式執行
return user_input
# 處理指定資料夾中的檔案
def process_files_in_folder(folder_path, separator, at_start=False, at_end=False):
for filename in os.listdir(folder_path):
if filename.endswith('.txt'):
file_path = os.path.join(folder_path, filename)
print(f"處理檔案: {file_path}")
insert_separator(file_path, separator, at_start, at_end)
print(f"已在檔案 {filename} 中插入分隔符")
if __name__ == "__main__":
folder_path = input("請輸入檔案所在資料夾的路徑(或輸入 'q' 以中止操作):")
if folder_path.lower() == 'q':
print("操作已中止。")
exit() # 終止程式執行
separator = get_valid_input("請輸入分隔符字元(如******):")
# 確認是否需要在開頭插入分隔符
add_to_start = input("是否要在開頭插入分隔符?輸入 'Y' 以在開頭插入,直接按 Enter 跳過,或輸入 'q' 以中止操作:")
if add_to_start.lower() == 'q':
print("操作已中止。")
exit()
# 確認是否需要在結尾插入分隔符
add_to_end = input("是否也要在結尾插入分隔符?輸入 'Y' 以在結尾插入,直接按 Enter 跳過,或輸入 'q' 以中止操作:")
if add_to_end.lower() == 'q':
print("操作已中止。")
exit()
# 根據用戶的選擇來插入分隔符
process_files_in_folder(folder_path, separator, at_start=(add_to_start.lower() == 'y'), at_end=(add_to_end.lower() == 'y'))
print("操作完成!")