我制备一些代码来执行这样的命令行:为什么字符'^'忽略byt Python Popen - 如何在Popen Windows中转义'^'字符?
c:\cygwin\bin\convert "c:\root\dropbox\www\tiff\photos\architecture\calendar-bwl-projekt\bwl01.tif" -thumbnail 352x352^ -format jpg -filter Catrom -unsharp 0x1 "c:\root\dropbox\www\tiff\thumbnails\architecture\calendar-bwl-projekt\thumbnail\bwl01.jpg"
这工作从命令行(相同的命令如上述),但是352x352细^是352x352 ^不352x352:
c:\cygwin\bin\convert "c:\root\dropbox\www\tiff\photos\architecture\calendar-bwl-projekt\bwl01.tif" -thumbnail 352x352^ -format jpg -filter Catrom -unsharp 0x1 "c:\root\dropbox\www\tiff\thumbnails\architecture\calendar-bwl-projekt\thumbnail\bwl01.jpg"
如果运行该python中的代码 - 字符'^'被忽略,并且调整大小的图像的大小为'%sx%s'通过而不是%sx%s^- 为什么Python会剪切'^'字符以及如何避免它?:
def resize_image_to_jpg(input_file, output_file, size):
resize_command = 'c:\\cygwin\\bin\\convert "%s" -thumbnail %sx%s^ -format jpg -filter Catrom -unsharp 0x1 "%s"' \
% (input_file, size, size, output_file)
print resize_command
resize = subprocess.Popen(resize_command)
resize.wait()
尝试将列表传递给'Popen'而不是字符串。有时这有助于。 – Kevin
@Kevin无论看到模块代码下面的列表都会加入。 – Chameleon
无关:'Popen(cmd).wait()'是'subprocess.call(cmd)'的意思。 – jfs