【问题标题】:Opening images from a directory from a list of filenames从文件名列表中打开目录中的图像
【发布时间】:2018-03-06 04:58:12
【问题描述】:

我希望能够open/move/rename 将图像从包含数百张图像的目录中形成文件名列表。不幸的是,没有通配符,它​​们都是.jpg,并且图像名称不是连续的。

例如

list = ['media\\1520298987567.jpg',
        'media\\1520298997109.jpg',
        'media\\1520299004063.jpg',
        'media\\1520299010082.jpg',
        'media\\1520299015452.jpg',
        'media\\1520299020690.jpg',
        'media\\1520299026092.jpg']

有人知道怎么做吗? 提前谢谢你。

【问题讨论】:

  • 什么意思没有通配符?你试过模块glob吗?
  • 尽量不要使用列表作为变量名。
  • 是的,我尝试使用 glob,但从示例中可以看出,没有可使用的通配符。
  • 除了 python 列表之外,您提供的内容中没有“示例”。你需要澄清你想要什么以及到目前为止你做了什么?
  • 你试过枕头还是魔杖?

标签: python python-3.x list


【解决方案1】:

这可能会帮助您(打开/移动/重命名)图像文件。

from PIL import Image
import glob, os

path = '/path/to/move/'
list_of_files = ['testfile1.jpg', 'testfile2.jpg']
for infile in glob.glob("*.jpg"):
    filename, ext = os.path.splitext(infile)
    if filename + '.' + ext in list_of_files:
        # Open the image
        im = Image.open(image_path)
        # Rename the Image
        renamed_filename = filename + '_renamed.' + ext
        # Move the image
        im.save(path + renamed_filename, 'jpg')

【讨论】:

  • 谢谢,我意识到一旦我可以访问具有列表中文件名的文件,这就是我将如何移动/重命名目录中的文件。我的问题是该目录有数百个文件,它们的名称都与 glob 相似,并且都是 .jpg 它只打开列表中我想要实现的文件。不过感谢您的帮助。
  • 你不认为有一个 if 条件会起作用吗?让我更新答案
【解决方案2】:

您可以使用python中的glob包获取jpg文件列表和os包执行打开/移动/重命名操作

import glob 

list_of_files = glob.glob("media/*.jpg"):

for file in list_of_files: 
    # do required operation with the help of os package

【讨论】:

  • 该列表是来自将这些图像链接到调查站点的数据框的输出。我意识到我可以使用 glob 来搜索这个图像列表的差异,然后使用 os?
  • 可用于执行操作系统相关功能的操作系统包。检查链接docs.python.org/2/library/os.html
  • @PrashantPuri 你的编码风格就像一个来自 Javascript 世界的人试图用 camelCase 作为变量名,'//' 作为注释写一个 python 代码......
  • 是的@PrashantPuri。请尽量不要在 python 中使用 Camel 套管。 list_of_files更适合python。
猜你喜欢
  • 1970-01-01
  • 2012-08-07
  • 1970-01-01
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多