Arquivo de e-mail e lista de pastas com tamanho?

0

Eu estou tentando obter uma lista de todos os arquivos e pastas com tamanhos lá (até 1 º nível, ou seja, nomes de arquivos e pastas com tamanhos lá no diretório atual) enviado para mim através 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()
DeepeshAgarwal
fonte
1
Tente o ducomando em vez de ls.
Pedro Romano
@PedroRomano fez isso, mas lista apenas pastas e não filesizes? Talvez uma sugestão de uso du para listar arquivos e tamanhos de pasta ajudaria ...
DeepeshAgarwal
1
Você já tentou du -s *?
Pedro Romano
@PedroRomano usando du -sh /media/ExternalHd/myfolder/*funciona no terminal, mas usando p=subprocess.Popen(['du', '-sh', '/media/ExternalHd/myfolder/*'], stdout=subprocess.PIPE)em um script python mostra errodu: cannot access /media/ExternalHd/myfolder/*: No such file or directory
DeepeshAgarwal

Respostas:

1

Você precisa de um shell para expandir "*", Popen não vai fazer isso por você. Então, se você realmente quer usar Popen, então

p=subprocess.Popen(['sh', '-c', 'du', '-sh', '/media/ExternalHd/myfolder/*'], stdout=subprocess.PIPE)
lemonsqueeze
fonte