디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[free] 순서가 뒤죽박죽인 html 파일들 해결하기

몬발켜갤로그로 이동합니다. 2025.01.30 16:57:38
조회 27 추천 0 댓글 0
														


선협소설을 다운로드해서 번역기를 돌려서 읽으려고 하는데요, 

일부 사이트에서 다운로드한 파일들은 파일 이름과 실제의 소설의 순서가 안 맞는 경우가 있습니다. 

그래서 소설을 순서대로 읽으려면 html 파일의 이름을 전부 확인해서 수정해야 할 필요가 있습니다. 

런 용도로 프로그램을 하나 만들어 보려고 chatGPT에게 질문을 하고, 코드를 짜라고 명령했습니다. 


1. 폴더를 선택하는 기능

2. html viewer (읽기 모드로 파일을 엽니다.)

3. 새 파일명을 입력하는 텍스트 필드(글씨 크기는 24폰트로 설정)

4. '저장' 버튼

5. output 폴더에 자동 저장

6. safeput 폴더에 자동 이동


예)

사용자는 D:에서 6 폴더를 선택합니다. 

그러면 6 폴더에 들어있는 html 파일들 중에서 이름 순서로 첫 번째 파일이 왼쪽 html viewer에 표시됩니다. 

0001.html 파일이 표시되었습니다.

사용자는 입력창(텍스트 필드)에 '1'이라고 입력했습니다. (다른 이름도 넣어도 됩니다.)

엔터 키를 누르거나 '저장' 버튼을 클릭합니다.

'1.html' 파일이 생성되어서 C:\output 폴더에 저장됩니다. 

왼쪽 html viewer에는 다음 파일인 0002.html 파일이 표시됩니다. 

2초 지연이 발생합니다. 

0001.html 파일이 C:\safeput 폴더에 이동됩니다. 


<아래 그림은 누르면 원본 사이즈로 커집니다. 

제가 테스트하다가 캡처한 그림입니다.>



23b8c728e4df3df420afd8b236ef203ec2044b728b0fbdce



이 코드는 퍼블릭 도메인이므로, 코드의 수정이나 배포나 판매를 여러분이 마음대로 하십시오. ^ ^

예를 들어서 프로그램 윈도우의 크기를 조정하시거나 폰트의 크기를 마음대로 바꾸셔도 됩니다. 

어디를 바꿔야 하는지 모르면, chatGPT에게 코드를 붙여넣은 다음에 물어 보면 됩니다. 



import sys
import os
import shutil
import time
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QLineEdit, QFileDialog
from PyQt5.QtCore import Qt, QUrl, QTimer
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtGui import QFont

class HtmlRenamer(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # Layouts
        mainLayout = QHBoxLayout(self)
        leftLayout = QVBoxLayout()
        rightInputLayout = QHBoxLayout()  # Layout for input and button next to each other
        rightLayout = QVBoxLayout()

        # Components
        self.folderButton = QPushButton("폴더 선택", self)
        self.folderButton.clicked.connect(self.openFolder)

        self.htmlViewer = QWebEngineView(self)
        self.fileNameInput = QLineEdit(self)
        self.fileNameInput.setPlaceholderText("새 파일명 입력")
        self.fileNameInput.setFont(QFont('Arial', 24))  # Set font size to 24

        self.saveButton = QPushButton("저장", self)
        self.saveButton.clicked.connect(self.saveAndAdvance)
        self.fileNameInput.returnPressed.connect(self.saveButton.click)

        # Setup input layout
        rightInputLayout.addWidget(self.fileNameInput)
        rightInputLayout.addWidget(self.saveButton)

        # Setup right layout
        rightLayout.addLayout(rightInputLayout)

        # Setup main layout
        leftLayout.addWidget(self.folderButton)
        leftLayout.addWidget(self.htmlViewer)
        mainLayout.addLayout(leftLayout, 75)
        mainLayout.addLayout(rightLayout, 25)

        self.setWindowTitle('HTML 파일 이름 변경기')
        self.setGeometry(300, 300, 800, 600)

    def openFolder(self):
        folder = QFileDialog.getExistingDirectory(self, "폴더 선택")
        if folder:
            self.folder = folder
            self.htmlFiles = sorted([f for f in os.listdir(folder) if f.endswith('.html')])
            self.currentFileIndex = 0
            self.loadHtmlFile()

    def loadHtmlFile(self):
        if self.htmlFiles:
            file_path = os.path.join(self.folder, self.htmlFiles[self.currentFileIndex])
            self.htmlViewer.load(QUrl.fromLocalFile(file_path))
            self.fileNameInput.clear()  # Clear the text field for new filename input

    def saveAndAdvance(self):
        new_name = self.fileNameInput.text() + '.html'
        if new_name.strip('.html'):
            src = os.path.join(self.folder, self.htmlFiles[self.currentFileIndex])
            dst = os.path.join("C:\\output", new_name)
            shutil.copy(src, dst)  # Copy the file to new destination with new name
            self.advanceFile()

    def advanceFile(self):
        if self.currentFileIndex < len(self.htmlFiles) - 1:
            previous_src = os.path.join(self.folder, self.htmlFiles[self.currentFileIndex])
            self.currentFileIndex += 1
            self.loadHtmlFile()
            QTimer.singleShot(2000, lambda: self.moveFileToSafeput(previous_src))

    def moveFileToSafeput(self, src):
        safe_dst = os.path.join("C:\\safeput", os.path.basename(src))
        shutil.move(src, safe_dst)  # Move the previous file to safeput folder

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = HtmlRenamer()
    ex.show()
    sys.exit(app.exec_())


추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
- 설문 현역으로 군대 안 간게 의아한 스타는? 운영자 25/06/30 - -
- AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
1 공지 프로그램 소스 코드의 공유/수정/판매 [2] 몬발켜갤로그로 이동합니다. 24.12.24 279 2
20 fre 빨간 공 파란 공 랜덤으로 그리는 프로그램 몬발켜갤로그로 이동합니다. 05.15 20 0
19 fre textmovie -자막만 있는 동영상 [2] 몬발켜갤로그로 이동합니다. 04.10 24 0
18 fre novel 9을 또 수정했습니다 몬발켜갤로그로 이동합니다. 02.27 19 0
17 fre html 파일 분할 (장 나누기) 몬발켜갤로그로 이동합니다. 02.21 25 0
16 fre 제미나이 복붙 novel 9을 또 수정했습니다 몬발켜갤로그로 이동합니다. 02.13 40 0
15 fre 제미나이 Flash 2.0을 위한 코드를 수정하였습니다 [4] 몬발켜갤로그로 이동합니다. 02.06 50 0
14 fre 1206, flash 1.5를 위한 코드를 수정했습니다 몬발켜갤로그로 이동합니다. 02.01 23 0
13 fre 누락된 파일명 찾아내기 몬발켜갤로그로 이동합니다. 01.31 12 0
12 fre 순서가 뒤죽박죽인 html 파일 이름 바꾸기 코드 몬발켜갤로그로 이동합니다. 01.31 27 0
fre 순서가 뒤죽박죽인 html 파일들 해결하기 몬발켜갤로그로 이동합니다. 01.30 27 0
10 fre 1206, Flash 1.5를 위한 코드를 또 수정했습니다 몬발켜갤로그로 이동합니다. 01.28 24 0
9 fre 1206 복붙 코드를 수정하였습니다 몬발켜갤로그로 이동합니다. 01.17 23 0
8 fre 1206을 위한 복붙 [2] 몬발켜갤로그로 이동합니다. 01.13 81 0
7 일반 이런갤도 있네 프갤러(223.38) 01.10 17 0
6 일반 북스캔 코드에 관한 설명을 추가합니다 몬발켜갤로그로 이동합니다. 01.09 56 0
5 fre 북스캔 book scan 몬발켜갤로그로 이동합니다. 01.07 216 1
4 fre 검색어로 폴더와 그 하위 폴더 안의 파일을 찾아주는 프로그램 몬발켜갤로그로 이동합니다. 24.12.24 128 0
3 fre 검색어로 폴더 안의 파일을 찾아주는 프로그램 [2] 몬발켜갤로그로 이동합니다. 24.12.24 189 0
2 fre 파일명이 (1)로 끝나는 파일만 찾아주는 프로그램 몬발켜갤로그로 이동합니다. 24.12.24 123 1
뉴스 배우 신구, 부인과 사별…39살 늦깍이로 결혼해 51년간 해로 디시트렌드 14:00
1
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2