首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3 img2pdf格式中的图像顺序错误

Python3 img2pdf格式中的图像顺序错误
EN

Stack Overflow用户
提问于 2018-03-18 14:55:09
回答 1查看 1.3K关注 0票数 1

我正在工作的一个小程序,从一个网站的图像,并将他们放在一个pdf,方便访问和更简单的查看。我有一个小问题,因为img2pdf模块似乎以错误的顺序将图像放入pdf中,我不太明白为什么。

它似乎把档案排列在1,10,11之间。

代码语言:javascript
复制
import urllib.request
import os
import img2pdf


n = 50
all = 0
for counter in range(1,n+1):
      all = all + 1
      urllib.request.urlretrieve("https://website/images/"+str(all)+".jpg", "img"+str(all)+".jpg")


cwd = os.getcwd()
if all == 50:
      with open("output2.pdf", "wb") as f:
            f.write(img2pdf.convert([i for i in os.listdir(cwd) if i.endswith(".jpg")]))
EN

回答 1

Stack Overflow用户

发布于 2018-10-08 16:21:26

没有看到你想要读的文件名,一个猜测是你的文件名包含不是零填充的数字。名为0.jpg、1.jpg、. 11.jpg的文件序列的字典顺序(按字母顺序排序)将导致这种排序: 0.jpg、1.jpg、10.jpg、11.jpg、2.jpg、3.jpg、4.jpg、5.jpg、6.jpg、7.jpg、8.jpg、9.jpg,因为"1“< "2”。

要将文件组合到10之前的2,可以对文件名进行零填充(但也要注意,有些软件会将前导零解释为数字八进制表示的指示符,而不仅仅是前导零。)

如果无法操作文件名,那么可以按照以下方式更改文件获取代码:使用正则表达式从整个文件列表的文件名中提取数字,如int类型,然后根据提取的数字对文件名列表进行排序(将排序为int,其中2< 10)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49349302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档