我编写的脚本将多个PDF压缩为一个脚本,在我的PC上可以正常工作,但似乎仅在我的一台同事计算机上生成损坏的PDF。
我很难调试此问题,因为它需要访问他的个人计算机。但是,我认为该问题是子进程与我的临时文件清除功能之间的时间问题。该脚本将网络驱动器位置上的几个单独的PDF压缩为同一位置中的单个临时PDF。然后,它利用子过程将临时PDF复制到用户选择的位置(在本例中为“桌面”。)但是,下一行代码是我的临时文件清除例程,其中所有PDF都被删除。复制到用户桌面上。在复制过程中,清理例程是否可能执行并删除它?我有理由相信可以适当地创建临时PDF,而这似乎仅在他的计算机上发生。
这是有问题的脚本的一部分:
#Condense Seperate PDFs to Single PDF
writer = PdfWriter()
for pdf in pdfs:
if os.path.exists(pdf):
writer.addpages(PdfReader(pdf).pages)
pages = pages + 1
writer.write("tempFinal.pdf")
#Copy Final PDF to the Save Path (Users Desktop in this example)
subprocess.call('copy "tempFinal.pdf" "'+ savePath +'" /y', shell=True, stdout=DEVNULL, stderr=subprocess.DEVNULL)
#Clean-up all temp files.
deleteTemp()
这是清理例程:
def cleanup(filename):
try:
os.remove(filename)
except OSError:
pass
def deleteTemp():
#pdfs is a list of the seperate PDF files
for pdf in pdfs:
cleanup(pdf)
cleanup("tempFinal.pdf")
cleanup("temp.dxf")
cleanup("plot.log")
cleanup("plot.scr")