Você precisa de um shell para expandir "*", Popen não vai fazer isso por você. Então, se você realmente quer usar o Popen, então
p=subprocess.Popen(['sh', '-c', 'du', '-sh', '/media/ExternalHd/myfolder/*'], stdout=subprocess.PIPE)
Estou tentando obter uma lista de todos os arquivos e pastas com os tamanhos (até o nível 1, ou seja, nomes de arquivos e pastas com tamanhos existentes no diretório atual) enviados por email para mim por meio de um script python. Eu tenho o script funcionando, mas usando o comando ls como abaixo só envia tamanhos de arquivo e não de pasta?
p=subprocess.Popen(['ls', '-1ahs', '/media/ExternalHd/myfolder'], stdout=subprocess.PIPE)
output = p.stdout.read()