Когда в этой программе Python вызывается функция «run»?Python

Программы на Python
Ответить
Anonymous
 Когда в этой программе Python вызывается функция «run»?

Сообщение Anonymous »

Я не понимаю эту программу на Python, почему выполняется функция «запустить»? В сегменте кодов и во всей программе я не вижу вызова run(). Вот сегменты кода, в которых объявлена ​​функция, и класс, содержащий ее, который был выполнен. Главное окно — это класс window2, в нем объявлена ​​функция «запуск».
###cut off
class PDFWorker(QThread):
progress_signal = pyqtSignal(int)
completed_signal = pyqtSignal()

def __init__(self, files_list, output_path2, start_page, end_page, spinBox_2_value):
super().__init__()
self.files_list = files_list
self.output_path2 = output_path2
self.start_page = start_page
self.end_page = end_page
self.spinBox_2_value = spinBox_2_value

def run(self):
print("run4")
total_pages = 0
# First, calculate the total number of pages across all PDFs for progress tracking
for file in self.files_list:
doc = fitz.open(file)
total_pages += (len(doc) - self.spinBox_2_value) - self.start_page
doc.close()

pages_processed = 0
# Process each file individually
for i, file in enumerate(self.files_list):
doc = fitz.open(file)
num_pages_in_doc = len(doc) # Get total pages for this document

# Calculate the end_page for the current document, ensuring it doesn't exceed the total pages
end_page = min(num_pages_in_doc - self.spinBox_2_value, self.end_page)

text = ""
print(f"Processing {file} from page {self.start_page} to {end_page}")

for page_num in range(self.start_page, end_page):
page = doc.load_page(page_num)
pix = page.get_pixmap()
image = Image.frombytes("RGB", [pix.width, pix.height], pix.samples)
text += "\n" + pytesseract.image_to_string(image)
pages_processed += 1

# Emit progress signal
progress = int((pages_processed / total_pages) * 100)
self.progress_signal.emit(progress)

doc.close()

# Ensure each output file has a unique name
output_file = Path(self.output_path2, f"{Path(file).stem}_{i+1}.docx")
self.create_docx(text, output_file)
print(f"Created {output_file}")
print(text)

# Emit completed signal
self.completed_signal.emit()

def create_docx(self, text, file_path):
doc = Document()
paragraphs = text.split('\n')
for paragraph in paragraphs:
doc.add_paragraph(paragraph)
doc.save(file_path)

class window2(QMainWindow):
def __init__(self):
super(window2, self).__init__()
loadUi(os.path.join(base_path, '2.ui'), self)

self.action.triggered.connect(self.page1)
self.pushButton_start.clicked.connect(self.start)
self.pushButton.clicked.connect(self.select_input_path)
self.pushButton_2.clicked.connect(self.select_output_folder)

def start(self):
print("run1")
global path2, output_path2

if path2 == "":
QMessageBox.critical(self, '', 'E:0014')
return

if output_path2 == "":
QMessageBox.critical(self, '', 'E:0015')
return

start_page = self.spinBox.value()
spinBox_2_value = self.spinBox_2.value()

if self.radioButton_single.isChecked():
files_list = [path2] # Single file
elif self.radioButton_all.isChecked():
files_list = find_files(path2, ".pdf") # Multiple files

# Open the first file to calculate the total number of pages
doc = fitz.open(files_list[0])
end_page = len(doc) # Set end_page to the total number of pages in the PDF
doc.close()

# Create a PDF worker thread and start processing
print("run2")
self.pdf_worker = PDFWorker(files_list, output_path2, start_page, end_page, spinBox_2_value)
self.pdf_worker.progress_signal.connect(self.update_progress_bar)
self.pdf_worker.completed_signal.connect(self.pdf_processing_completed)
self.pdf_worker.start()
###cut off


Подробнее здесь: https://stackoverflow.com/questions/792 ... on-program
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»