提取python中的所有文件名

提取python中的所有文件名,python,python-3.x,Python,Python 3.x,我有一个应用程序,它通过在cmd.exe中输入以下内容,将一种照片格式转换为另一种格式:“AppConverter.exe”“file.tiff”“file.jpeg” 但由于我不想每次需要转换照片时都输入这个,所以我想要一个转换文件夹中所有文件的脚本。到目前为止,我有: def start(self): for root, dirs, files in os.walk("C:\\Users\\x\\Desktop\\converter"): for file in fil

我有一个应用程序,它通过在
cmd.exe
中输入以下内容,将一种照片格式转换为另一种格式:“AppConverter.exe”“file.tiff”“file.jpeg”

但由于我不想每次需要转换照片时都输入这个,所以我想要一个转换文件夹中所有文件的脚本。到目前为止,我有:

  def start(self):
    for root, dirs, files in os.walk("C:\\Users\\x\\Desktop\\converter"):
     for file in files:
        if file.endswith(".tiff"):
          subprocess.run(['AppConverter.exe', '.tiff', '.jpeg'])

那么,我如何获取所有文件的名称并将它们放入
子流程
。我正在考虑为每个文件使用basename(无ext.)并将其粘贴到
.tiff
.jpeg
中,但我不知道该怎么做。

您可以尝试查看os.path.splitext()。这允许您将文件名拆分为包含basename和扩展名的元组。那可能会有帮助


我认为最快的方法是将模块用于表达式:

import glob
import subprocess

for file in glob.glob("*.tiff"):
    subprocess.run(['AppConverter.exe', file, file[:-5] + '.jpeg'])
    # file will be like 'test.tiff'
    # file[:-5] will be 'test' (we remove the last 5 characters, so '.tiff'
    # we add '.jpeg' to our extension-less string

所有这些信息都在我在你原始问题的评论中链接的帖子上。

可能重复的不幸的是,尽管我是初学者,该帖子对我帮助不大。可能重复的