Здравствуйте. Я пытаюсь запустить несколько команд ОС, используя Python в Ма c ОС
Я хочу преобразовать изображение в tif-файл, используя команду конвертации в терминале. Однако мне нужно конвертировать 100 изображений, я делаю программу Python, чтобы упростить ее.
import os
import subprocess
files = os.listdir("/Users/woonie/Downloads/test")
i=1
for file in files:
args=['convert',file,'-resize','100%','-type',"Grayscale","/Users/woonie/Downloads/test/kor.",i,"test.exp0.tif"]
subprocess.Popen(args)
i = i+1
конвертировать имя файла -...- output_filename.exp0.tif - это форма команды преобразования, поэтому мне нужно каждый раз меняйте имя файла и имя выходного файла. У меня есть список имен файлов в файлах. И я хочу поставить номер изображения после «теста», чтобы он стал kor.test1.exp0.tif, kor.test2.exp0.tif, et c.
Traceback (most recent call last):
File "/Users/woonie/PycharmProjects/image_chage/change.py", line 9, in <module>
subprocess.Popen(args)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", line 854, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", line 1637, in _execute_child
self.pid = _posixsubprocess.fork_exec(
TypeError: expected str, bytes or os.PathLike object, not int
Но эта ошибка вышла .
Итак, я изменил этот код на
args=['convert'+str(file)+'-resize','100%','-type',"Grayscale","/Users/woonie/Downloads/test/kor."+str(i)+"test.exp0.tif"]
Но появилась та же ошибка ... Это работало, когда я вводил эту команду прямо в Терминал.
Я неправильно использовал подпроцесс? или я не могу запрограммировать то, что хочу