【问题标题】:How to convert and save files(os.walk) [duplicate]如何转换和保存文件(os.walk)[重复]
【发布时间】:2018-03-22 08:56:33
【问题描述】:

我有一个关于如何在使用 python 将文件从 psd 转换为 jpg 后保存文件的问题。因为我想检查每个文件,所以我使用了 os.walk 函数。这是我的代码。 当我运行它时,我有这个错误。

FileNotFoundError: [Errno 2] 没有这样的文件或目录:'test02.psd'

我要保存文件的文件夹与 python 文件属于同一类别。 但是 psd 文件位于某个子文件夹中。

我该如何克服这个问题?

from PIL import Image
import os


for path, dir, files in os.walk('.'):
    for file in files:
        if file.endswith('.psd'):
            print('The {} is being converted to jpg...'.format(file))
            i  = Image.open(file)
            fn, fext = os.path.splitext(file)
            try:
                i.save('jpgs/{}.jpg'.format(fn)) # I created a folder named 'jpgs' already.
            except Exception as e:
                print(e)

【问题讨论】:

  • 哪一行会抛出这个错误?
  • @Aran-Fey 关闭,但不完全相同。你的建议是关于os.listdir
  • @Jean-FrançoisFabre 问题是一样的,listdir 与否。如果您愿意,我可以将其重写为 listdir os.walk 的规范欺骗。
  • 抱歉不同意,您必须找到更好的副本。 os.listdir 返回文件 namesos.walk 返回一个三元组根+文件列表+每个目录的目录列表。没那么容易掌握。再加上用户使用当前目录并希望它能神奇地解决它。
  • 关于 2 个不同功能的规范?这有点牵强。我不喜欢重复和回答重复的用户知道重复存在只是为了代表。如果我找到一个好的,我会关闭。

标签: python os.walk


【解决方案1】:

os.walk 递归遍历并在较低的目录中,并在path 中加载文件的当前目录。 file 只是文件名称

os.listdir(使用当前目录)或当前目录(当path.)适用于os.walk。您必须预先添加根目录

i  = Image.open(os.path.join(path,file))

【讨论】:

  • 感谢大家的帮助和讨论。 ^^*
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-04
  • 2022-11-04
  • 2013-03-24
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多