我的python exe文件在共享磁盘中不起作用,但在jupyter笔记本中起作用

2024-05-29 10:00:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个python脚本来读取当前文件夹(共享磁盘内)中的PDF文件,查找特定的编号,然后在其他文件夹(相同的共享磁盘)中搜索该编号。如果匹配,我将使用PyMuPDF将两个文件合并到一个新文件中。之后,将该文件移动到其他文件夹。 问题是,我需要在我的工作笔记本中,在一个共享磁盘中完成它。(该磁盘中未安装python)。 我只在笔记本的c:\用户中安装了Anaconda。因此,使用jupyter笔记本时,脚本运行得非常完美,但是当我将其转换为exe文件(使用pyinstaller)时,它就不再工作了,在我的C磁盘中也不工作,在共享磁盘中也不工作。 我需要一个exe文件在共享磁盘内执行该脚本

下面是我的脚本


import fitz
import os
import shutil
from tkinter import *
from tkinter import messagebox

archis = os.listdir()
archivos = os.listdir("N:\\...\\DJVE 2021")

window = Tk()
window.eval('tk::PlaceWindow %s center' % window.winfo_toplevel())
window.withdraw()

dejotas = 0
cant_veps = 0

unir_djs = messagebox.askquestion("Pregunta","Desea unir los Veps a las DJVE?")
if unir_djs == "yes":
 
    try:
        
        for files in archis:
            files_splited = files.split(".")
            if files_splited[1] == "pdf":
                raw_file = fitz.open(files)

                for pageNumber, page in enumerate(raw_file.pages(), start = 1):
                    text = page.getText()

                    try:
                        for files_dj in archivos:
                            if files_dj[0:15] in text:
                                file_dj = fitz.open("N:\\....\\DJVE 2021\\" + files_dj)
                                raw_file.insertPDF(file_dj, start_at=0)
                                raw_file.save(files_dj)
                                file_dj.close()
                                raw_file.close()
                                shutil.move(files_dj, "N:\\...\\DJVE 2021\\Djve con veps")
                                dejotas += 1
                                cant_veps += 1 
                    except:
                        messagebox.showerror("Error","Problema con el archivo de djve.")
                        
        
            
            
    except:
        messagebox.showerror("Error","Problema con el archivo de veps.")


            
else:
    messagebox.showinfo("Informacion","No se ejecuto ninguna tarea.")
    


if unir_djs == "yes":

    messagebox.showinfo("Informacion",f"Numero de DJVE procesadas {dejotas}")
    messagebox.showinfo("Informacion",f"Favor borrar los {len(lista_veps)} veps de esta carpeta.\nGracias. ")

window.deiconify()
window.destroy()
window.quit()

谢谢


Tags: 文件inimport脚本rawifdjfiles

热门问题