在python

时间:2017-02-27 19:48:10

标签: 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 files:
        if file.endswith(".tiff"):
          subprocess.run(['AppConverter.exe', '.tiff', '.jpeg'])

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

所有这些信息都出现在我原始问题的评论中。