Eu preciso usar md5sum
no Python usando pipe para calcular a soma de verificação para um monte de arquivos .mp3 ... existe um comando que ignora espaços em branco nos nomes de arquivos na linha de comando do md5sum
programa?
Por exemplo:
import os
def index(directory):
stack = [directory]
files = []
while stack:
directory = stack.pop()
for file in os.listdir(directory):
fullname = os.path.join(directory, file)
if fullname.endswith('mp3'):
files.append(fullname)
if os.path.isdir(fullname) and not os.path.islink(fullname):
stack.append(fullname)
return files
def check(directory):
files = index(directory)
hvalues = []
for x in files:
cmd = 'md5sum' + ' ' + x
fp = os.popen(cmd)
res = fp.readline()
hvalues.append(res)
stat = fp.close() # What to do with stat?
return hvalues
O comando cmd = 'md5sum' + ' ' + x
não funcionará como deveria nos arquivos que incluem espaços em branco ou caracteres especiais, porque a ferramenta 'md5sum' não possui a capacidade de manipular corretamente arquivos (hash) com espaços em branco nos nomes de arquivos.