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()

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)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.