Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Python枕头图像转换为PDF,然后合并内存问题_Python_Pdf Generation_Python Imaging Library - Fatal编程技术网

将Python枕头图像转换为PDF,然后合并内存问题

将Python枕头图像转换为PDF,然后合并内存问题,python,pdf-generation,python-imaging-library,Python,Pdf Generation,Python Imaging Library,目标: 将有限数量的文件转换为.jpg格式,并将其合并为一个PDF文件 预期结果: 文件夹中的文件已成功转换并合并到指定位置的一个pdf文件中 问题: 当文件大小超过一定数量时,在我的测试中大约为400 mb,程序崩溃,并显示以下消息: Traceback (most recent call last): File "C:\Users\kaczk\AppData\Local\Programs\Python\Python38-32\lib\site-packages\PIL\ImageFi

目标: 将有限数量的文件转换为.jpg格式,并将其合并为一个PDF文件

预期结果: 文件夹中的文件已成功转换并合并到指定位置的一个pdf文件中

问题: 当文件大小超过一定数量时,在我的测试中大约为400 mb,程序崩溃,并显示以下消息:



Traceback (most recent call last):
  File "C:\Users\kaczk\AppData\Local\Programs\Python\Python38-32\lib\site-packages\PIL\ImageFile.py", line 498, in _save
    fh = fp.fileno()
io.UnsupportedOperation: fileno

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "MakePDF.py", line 10, in <module>
    im1.save(pdf1_filename, "PDF" ,resolution=1000.0, save_all=True, append_images=imageList)
  File "C:\Users\kaczk\AppData\Local\Programs\Python\Python38-32\lib\site-packages\PIL\Image.py", line 2084, in save
    save_handler(self, fp, filename)
  File "C:\Users\kaczk\AppData\Local\Programs\Python\Python38-32\lib\site-packages\PIL\PdfImagePlugin.py", line 46, in _save_all
    _save(im, fp, filename, save_all=True)
  File "C:\Users\kaczk\AppData\Local\Programs\Python\Python38-32\lib\site-packages\PIL\PdfImagePlugin.py", line 175, in _save
    Image.SAVE["JPEG"](im, op, filename)
  File "C:\Users\kaczk\AppData\Local\Programs\Python\Python38-32\lib\site-packages\PIL\JpegImagePlugin.py", line 770, in _save
    ImageFile._save(im, fp, [("jpeg", (0, 0) + im.size, 0, rawmode)], bufsize)
  File "C:\Users\kaczk\AppData\Local\Programs\Python\Python38-32\lib\site-packages\PIL\ImageFile.py", line 513, in _save
    fp.write(d)
MemoryError

在内存使用方面,我是否犯了一个简单的错误?在处理越来越多的文件时,是否有不同的模块可以使任务更轻松?我将非常感谢大家的帮助。

这个问题已经很老了,但自从我为同样的问题苦苦挣扎之后,这里有一个答案

您只需在使用图像后关闭它们:

im1.close()
for i in imageList:
    i.close()
这为我解决了问题


PS:看看
glob
,使用路径很容易。

这个问题很老了,但自从我在那里遇到同样的问题后,这里有一个答案

您只需在使用图像后关闭它们:

im1.close()
for i in imageList:
    i.close()
这为我解决了问题

PS:看看
glob
,它使使用路径变得非常容易