Eu preciso usar md5sumno 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 md5sumprograma?
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' + ' ' + xnã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.