파이썬 PDF 파일 내 텍스트를 파일명으로 변경

PDF 가 위치한 디렉토리를 설정하고,

위치에 pdf 파일을 떨궈줍니다.

 

pdf 에 위치한 파일이 파일 내 

인덱스에 위치한 텍스트를 인식하여 파일이름으로 변경하는 작업입니다.

import PyPDF2
import os

# 페이지 인덱스 설정
def extract_text_from_page(pdf_path, page_number, start_index, end_index):
    text = ''
    with open(pdf_path, 'rb') as file:
        reader = PyPDF2.PdfReader(file)
        page = reader.pages[page_number - 1]  # 페이지 인덱스는 0부터 시작하므로 1을 빼줍니다.
        page_text = page.extract_text()
        text += page_text[start_index:end_index]
    return text.strip()

# 파일 이름 변경 함수
def clean_filename(text):
    # 파일 이름에 사용할 수 없는 문자를 제거하거나 대체합니다.
    illegal_chars = ['\\', '/', ':', '*', '?', '"', '<', '>', '|']
    for char in illegal_chars:
        text = text.replace(char, '_')
    return text[:10]  # 파일 이름이 너무 길어지는 것을 방지하기 위해 일부를 잘라냅니다.


# 파일 내 데이터 추출
def rename_pdf_with_extracted_text(pdf_path):
    page_number = 1  # 추출하고자 하는 페이지 번호
    start_index = 200  # 추출을 시작할 인덱스
    end_index = 205  # 추출을 끝낼 인덱스
    extracted_text = extract_text_from_page(pdf_path, page_number, start_index, end_index)
    if extracted_text:
        cleaned_text = clean_filename(extracted_text)
        filename, extension = os.path.splitext(pdf_path)
        new_filename = f"{cleaned_text}{extension}"
        os.rename(pdf_path, new_filename)
        print(f"PDF 파일의 이름을 '{cleaned_text}'로 변경했습니다.")
    else:
        print("PDF 파일에서 텍스트를 추출할 수 없습니다.")

# 이름 변경할 디렉토리 설정
def rename_all_pdfs_in_directory(directory):
    for filename in os.listdir(directory):
        if filename.endswith('.pdf'):
            pdf_path = os.path.join(directory, filename)
            rename_pdf_with_extracted_text(pdf_path)

def main():
    directory = '/Users/Desktop/' 			 # pdf 위치한 디렉토리 설정
    rename_all_pdfs_in_directory(directory)

if __name__ == "__main__":
    main()

 

 

실행하면 py 파일이 위치한 디렉토리에 이름을 변경한 pdf 파일이 위치합니다.