【发布时间】:2019-01-24 16:45:08
【问题描述】:
我想用很多 PNG 文件创建 Gif 文件。问题是 PNG 文件的名称中有日期,例如(名称_2017100706_var.png)。日期开始是 yymmddhh 格式,从 2017100706 开始,到 2017101712 结束,增量为 6 小时,因此下一个文件名将在其名称中包含 2017100712,我希望代码根据日期顺序循环文件。所以我使用以下代码:
import os
import imageio
import datetime
png_dir = '/home/path/'
images = []
counter = 2017100706
while counter <= 2017101712:
for file_name in os.listdir(png_dir):
if file_name.startswith('name_'+str(counter)):
file_path = os.path.join(png_dir, file_name)
images.append(imageio.imread(file_path))
counter +=6
imageio.mimsave('/home/path/movie.gif', images, duration = 1)
【问题讨论】:
-
所以,基本上,获取文件夹中存在的所有文件名,然后按名称对它们进行排序(抱歉,我懒得找代码示例=D)。
-
这里解释了如何从文件夹中获取文件:stackoverflow.com/questions/3207219/… 在这里您可以找到如何对字符串列表(文件名)进行排序:stackoverflow.com/questions/36139/how-to-sort-a-list-of-strings
-
如果您不能只列出目录中的文件并需要生成文件名,我建议使用
datetime对象来存储日期时间并使用timedelta添加每个日期时间对象 6 小时。这将更容易在边界更改日期。然后,您可以根据需要格式化datetime对象来创建所需的字符串名称。
标签: python loops date-format