Isso não é uma falta de habilidades no md5tool
, mas uma restrição geral de linha de comando. Argumentos são separados por espaços. Portanto, se você passar um nome de arquivo contendo espaços para md5sum
, ele interpretará cada token como um único arquivo. Você pode contornar isso cercando o nome do arquivo com aspas.
Dito isso, tente substituir a linha
cmd = 'md5sum' + ' ' + x
com
cmd = 'md5sum' + ' "' + x + '"'
e sua chamada na linha de comando será parecida com
md5sum "file name with spaces.mp3"
Assim, md5sum
calculará o hash sem reclamar.