在python中提取所有文件名

Extracting all file names in python

我有一个应用程序通过输入cmd.exe以下内容从一种照片格式转换为另一种:"AppConverter.exe""file.tiff""file.jpeg"

但是因为我不希望每次想要转换照片时输入这个,我想要一个转换文件夹中所有文件的脚本。 到目前为止我有这个:

1
2
3
4
5
  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'])

那么我如何获取所有文件的名称并将它们放在subprocess中。 我正在考虑为每个文件使用basename(没有ext。)并将其粘贴到.tiff.jpeg中,但我对如何操作感到迷茫。


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

1
2
3
4
5
6
7
8
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

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


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

https://docs.python.org/3/library/os.path.html