我製備一些代碼來執行這樣的命令行:爲什麼字符'^'忽略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