Форум сайта python.su
1
Здравствуйте.
Вручную из командной строки запускаю конвертацию файла и всё работает:
convert -density 300 -units pixelsperinch g:\1\0008.jpg -compress Group4 g:\1\0008.tif
import subprocess subprocess.run(["G://Program Files//ImageMagick-7.0.7-Q16//convert.exe", "-density 300", "-units pixelsperinch", "g://1//0009.jpg", "-compress Group4", "g://1//0009.tif"])
Отредактировано Kustodiev_17 (Апрель 29, 2018 23:32:54)
Офлайн
253
"G://Program Files
"G:\\Program Files
"G:/Program Files
Офлайн
1
Вариант:
adress = "g://Program Files//ImageMagick-7.0.7-Q16//convert.exe" arguments = " -density 300 -units pixelsperinch g://1//0009.jpg -compress Group4 g://1//0009.tif" subprocess.run(adress + arguments, shell=True)
Отредактировано Kustodiev_17 (Апрель 29, 2018 23:48:03)
Офлайн
857
Kustodiev_17Слеши у тебя неправильные. Символ / и символ \ - это разные символы. Они воспринимаются по-разном как виндой, так и питоном.
Возможно есть способ узнать что “не нравиться” программе?
s = r"g:\Program Files\ImageMagick-7.0.7-Q16\convert.exe -density 300 -units pixelsperinch g:\1\0009.jpg -compress Group4 g:\1\0009.tif"
Офлайн
1
py.user.nextВозможно, не правильные. Я ориентируюсь на то, что работает. Например:
import os directory = 'g://2/' # В данную директорию были скопированы файлы от сканирования документов # с шаблонным именем "сканирование<nnnn>.jpg" for name in os.listdir(directory): # print(name) name_new = name[12:] os.chdir(directory) print(name_new) os.rename(name, name_new)
s = r"g:\Program Files\ImageMagick-7.0.7-Q16\convert.exe -density 300 -units pixelsperinch g:\1\0009.jpg -compress Group4 g:\1\0009.tif" subprocess.run(s, shell=True)
s = r"g:\Program Files\ImageMagick-7.0.7-Q16\convert.exe -density 300 -units pixelsperinch g:\1\0009.jpg -compress Group4 g:\1\0009.tif" subprocess.run(s)
Офлайн
1
Для следящих за темой.
Следующий код:
external_program = "g://Program Files//ImageMagick-7.0.7-Q16//convert.exe " input_path = 'g://1//' output_path = "g://1//" input_file = '0011.jpg' output_file = "0011.tif" constant_01 = '-density 300 -units pixelsperinch ' constant_02 = " -compress Group4 " for n in range(12, 20): input_file = '00' + str(n) + input_file[4 : ] output_file = '00' + str(n) + output_file[4 : ] s = external_program + constant_01 + input_path + input_file + constant_02 + output_path + output_file subprocess.run(s)
Офлайн
857
Не надо писать двойной слеш. Двойной слеш используется только при обращении к машине. В остальных случаях двойной слеш равен одинарному слешу, который равен одинарному бэкслешу. Выучи символы, их графический вид и названия.
Вот способы задания путей в винде
g:/Program Files/ImageMagick-7.0.7-Q16/convert.exe
g:\Program Files\ImageMagick-7.0.7-Q16\convert.exe
s = 'g:/Program Files/ImageMagick-7.0.7-Q16/convert.exe'
s = 'g:\\Program Files\\ImageMagick-7.0.7-Q16\\convert.exe'
s = r'g:\Program Files\ImageMagick-7.0.7-Q16\convert.exe'
Отредактировано py.user.next (Апрель 30, 2018 02:36:14)
Офлайн