python script - kimdonggwan337/dongdong GitHub Wiki

[replace.py]
#!/usr/local/bin/python3.10

import re
import os

# μ‹œμž‘ λ©”μ‹œμ§€
print(" μ—¬λŸ¬ 개의 ν…μŠ€νŠΈ νŒŒμΌμ„ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.")
print("    예) /home/user/file1.txt,/home/user/docs/file2.txt")
print("----------------------------------------------------------")

# μ‚¬μš©μž μž…λ ₯
file_input = input(" μˆ˜μ •ν•  ν…μŠ€νŠΈ 파일 경둜(μ—¬λŸ¬ 개면 μ‰Όν‘œλ‘œ ꡬ뢄): ").strip()
target = input(" 찾을 문자(λ˜λŠ” 단어): ").strip()
replacement = input("  λ°”κΏ€ 문자(λ˜λŠ” 단어): ").strip()

# λ³€μˆ˜ μ„ μ–Έ
raw_paths = [p.strip() for p in file_input.split(",") if p.strip()]
pattern = re.compile(re.escape(target), re.IGNORECASE)

# 경둜 μœ νš¨μ„± 검사 및 μΉ˜ν™˜ 횟수 μ„ΈκΈ°
for original in raw_paths:
    file_path = os.path.abspath(os.path.expanduser(original))
    print(f"\n 처리 쀑: {file_path}")
    if not os.path.isfile(file_path):
        print(f" 잘λͺ»λœ νŒŒμΌμž…λ‹ˆλ‹€.(경둜 λ˜λŠ” 디렉터리): {file_path}")
        continue

    # μΉ˜ν™˜ λŒ€μƒ 문자 횟수 μ„ΈκΈ°
    try:
        with open(file_path, 'r', encoding='utf-8') as f:
            text = f.read()
        count = 0
        matches = pattern.findall(text)
        count = len(matches)
        print(f" '{target}'(λŒ€μ†Œλ¬Έμž λ¬΄μ‹œ) 발견 횟수: {count}개")   
    except Exception as e:
        print(f" 파일 읽기 μ‹€νŒ¨: {file_path} ({e})")
        continue

    if count == 0:
        print(" μΉ˜ν™˜ λŒ€μƒμ΄ μ—†μ–΄ κ²°κ³Ό νŒŒμΌμ„ μƒμ„±ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.")
        continue

    # μΉ˜ν™˜ 및 κ²°κ³Ό 파일 μ €μž₯
    try:
        new_text = pattern.sub(replacement, text)
        base, ext = os.path.splitext(file_path)
        output_file = f"{base}_replaced{ext}"
        with open(output_file, 'w', encoding='utf-8') as out_f:
            out_f.write(new_text)
        print(f"'{target}' β†’ '{replacement}' μΉ˜ν™˜ μ™„λ£Œ")
        print(f"결과 파일: {output_file}")       
    except Exception as e:
        print(f" 파일 μ €μž₯ μ‹€νŒ¨: {file_path} ({e})")
        continue

print("\n λͺ¨λ“  파일 처리 μ™„λ£Œ!")
[move.py]
#!/usr/local/bin/python3.10

import os, shutil
from datetime import datetime, timedelta

source = input("폴더 경둜λ₯Ό μž…λ ₯ν•˜μ„Έμš”.: ").strip()
destination = input("이동 λŒ€μƒ 폴더 경둜: ").strip()
os.makedirs(destination, exist_ok=True)

if not os.path.isdir(source):
    print("ν•΄λ‹Ή κ²½λ‘œκ°€ μ—†κ±°λ‚˜ 폴더가 μ•„λ‹™λ‹ˆλ‹€.")
    exit(1)

print("\n[μž…λ ₯ 폴더 λ‚΄ 파일 λͺ©λ‘]")
for entry in os.listdir(source):
    full_path = os.path.join(source, entry)
    modify_time = datetime.fromtimestamp(os.path.getmtime(full_path))
    cutoff_time = datetime.now() - timedelta(days=10)
    if os.path.isfile(full_path):
        print(f" 파일 - {entry}  ({modify_time.strftime('%Y-%m-%d %H:%M:%S')})")
    if modify_time <= cutoff_time:
        try:
            move_count = 0
            shutil.move(full_path, destination)
            move_count += 1
            print(f" {entry}β†’ 이동 μ™„λ£Œ")
        except Exception as e:
            print(f"이동 μ‹€νŒ¨: {entry} ({e})")
            continue

print(f"\n{move_count}개 파일 이동 μ™„λ£Œ.")