반응형
이전에 올린 글에서 visual studio 에 종속성 라이브러리를 설정할 때, 특정 라이브러리 경로의 lib 파일 리스트를 txt로 복사할 필요가 있음. 이때, lib파일이 디버그와 릴리즈가 함께 포함되어 릴리즈로 빌드할 경우에 d.lib처럼 특정 단어를 포함하고 있는 라인을 모두 지우고자 특정 파일이 포함된 라인을 지우는 프로그램을 tkinter를 통해 Gui로 간단하게 작성함.
# 환경
- Window 10
- Python3
# 텍스트 파일에 특정 단어가 포함된 라인 제거 코드
import tkinter as tk
from tkinter import filedialog, messagebox
import os
def remove_lines_with_word():
"""
텍스트 파일에서 특정 단어가 포함된 모든 줄을 삭제하는 함수.
GUI 입력 필드에서 경로와 단어를 가져옵니다.
"""
filepath = file_path_entry.get()
word_to_remove = word_entry.get()
if not filepath or not word_to_remove:
messagebox.showwarning("입력 오류", "파일 경로와 지울 문자를 모두 입력하세요.")
return
# 파일이 존재하는지 확인
if not os.path.exists(filepath):
messagebox.showerror("파일 오류", f"'{filepath}' 파일을 찾을 수 없습니다.")
return
# 파일을 읽기
try:
with open(filepath, 'r', encoding='utf-8') as file:
lines = file.readlines()
except Exception as e:
messagebox.showerror("읽기 오류", f"파일을 읽는 중 오류가 발생했습니다: {e}")
return
# 특정 단어가 포함되지 않은 줄만 필터링 (대소문자 무시)
word_lower = word_to_remove.lower()
filtered_lines = [line for line in lines if word_lower not in line.lower()]
# 필터링된 줄을 파일에 덮어쓰기
try:
with open(filepath, 'w', encoding='utf-8') as file:
file.writelines(filtered_lines)
messagebox.showinfo("성공", f"'{word_to_remove}'가 포함된 모든 줄이 '{filepath}' 파일에서 성공적으로 삭제되었습니다.")
except Exception as e:
messagebox.showerror("쓰기 오류", f"파일을 쓰는 중 오류가 발생했습니다: {e}")
def browse_file():
"""
파일 탐색기 창을 열어 파일 경로를 선택하고 입력 필드에 채웁니다.
"""
filepath = filedialog.askopenfilename(
title="텍스트 파일 선택",
filetypes=[("Text files", "*.txt"), ("All files", "*.*")]
)
if filepath:
file_path_entry.delete(0, tk.END) # 기존 입력 삭제
file_path_entry.insert(0, filepath) # 새 경로 삽입
# --- Tkinter GUI 설정 ---
# 메인 윈도우 생성
root = tk.Tk()
root.title("줄 삭제 프로그램")
root.geometry("500x200")
root.resizable(False, False)
# 위젯들을 담을 프레임 생성
main_frame = tk.Frame(root, padx=10, pady=10)
main_frame.pack(expand=True, fill='both')
# 파일 경로 입력 라벨 및 엔트리
file_path_label = tk.Label(main_frame, text="파일 경로:")
file_path_label.grid(row=0, column=0, padx=5, pady=5, sticky='w')
file_path_entry = tk.Entry(main_frame, width=40)
file_path_entry.grid(row=0, column=1, padx=5, pady=5)
# 파일 탐색기 버튼
browse_button = tk.Button(main_frame, text="찾아보기...", command=browse_file)
browse_button.grid(row=0, column=2, padx=5, pady=5)
# 지울 문자 입력 라벨 및 엔트리
word_label = tk.Label(main_frame, text="지울 문자:")
word_label.grid(row=1, column=0, padx=5, pady=5, sticky='w')
word_entry = tk.Entry(main_frame, width=40)
word_entry.grid(row=1, column=1, padx=5, pady=5, columnspan=2)
# 실행 버튼
remove_button = tk.Button(main_frame, text="줄 삭제", command=remove_lines_with_word)
remove_button.grid(row=2, column=0, columnspan=3, pady=20)
# GUI 실행
root.mainloop()
- Python으로 작성되었으며 복사 붙여넣기하거나 첨부된 python파일을 다운로드하여 사용하면 됨.
- 위의 코드 역시 사용자의 용도에 맞게 커스텀하여 사용하면 됨.
# 사용방법
1. 커맨드 창(Cmd)로 해당 경로의 python 파일을 실행함.
$ python removeIncludedWordLine.py
2. 경로 입력란에 수정할 텍스트의 경로를 지정하고 지우고싶은 라인에 포함된 단어를 입력함.

* 텍스트에 특정 단어가 포함된 라인을 제거할 때, 노가다를 줄이기 위해 저장함.
removeIncludedWordLine.py
0.00MB
반응형
'프로그래밍 > 작은 메모' 카테고리의 다른 글
| Jetson nano OpenCV 4.5 설치 (0) | 2025.09.19 |
|---|---|
| WSL에서 설치된 Ubuntu 버전 제거 (0) | 2025.09.17 |
| 특정 경로의 파일 리스트 저장 방법 (Python) (2) | 2025.08.21 |
| Window PCL 라이브러리 사용 방법 (0) | 2025.08.21 |
| 간단한 나스닥 뉴스 알림 (2) | 2025.08.13 |