TheMagicOz
(usa PCLinuxOS)
Enviado em 09/01/2019 - 09:05h
Alguem me ajuda !! tenho esse script, ai eu passo como argumento a linha de comando o caminho(diretório), de exemplo: $ script.py /home/usuario/Documentos ,ai ele me retorna na tela todos os arquivos por ordem de tamanho pegando o size e apontando qual diretorio, de ordem crescente todos os arquivos, saida: 47.0MB --> /home/thauan/Documentos/Vagrant Automatização e implementação de entrega contínua/5 - Rodando o puppet automaticamente/Vagrant Aula 5 - Atividade 1 Vídeo 1 Alura - Cursos online de tecnologia.mp4
57.4MB --> /home/usuario/Documentos/Ansible Sua infraestrutura como código/2 - Criação do primeiro Playbook/Ansible Aula 2 - Atividade 3 Instalando dependências pelo Ansible Alura - Cursos online de tecnologia.mp4
59.3MB --> /home/usuario/Documentos/Ansible Sua infraestrutura como código/4 - Preparando o banco de dados/Ansible Aula 4 - Atividade 1 Configuração do banco de dados Alura - Cursos online de tecnologia.mp4
59.8MB --> /home/usuario/Documentos/Ansible Sua infraestrutura como código/4 - Preparando o banco de dados/Ansible Aula 4 - Atividade 3 Criação do usuário no banco Alura - Cursos online de tecnologia.mp4
68.3MB --> /home/usuario/Documentos/Ansible Sua infraestrutura como código/5 - Instalação do servidor e deploy da aplicação/Ansible Aula 5 - Atividade 5 Reiniciando serviços com Handlers Alura - Cursos online de tecnologia.mp4
68.4MB --> /home/usuario/Documentos/Ansible Sua infraestrutura como código/8 - Usando roles, dependências e defaults/Ansible Aula 8 - Atividade 1 Playbooks reaproveitáveis com Roles Alura - Cursos online de tecnologia.mp4
73.4MB --> /home/usuario/Documentos/Ansible Sua infraestrutura como código/5 - Instalação do servidor e deploy da aplicação/Ansible Aula 5 - Atividade 3 Alterando a configuração no Host Alura - Cursos online de tecnologia.mp4
73.5MB --> /home/usuario/Documentos/Ansible Sua infraestrutura como código/5 - Instalação do servidor e deploy da aplicação/Ansible Aula 5 - Atividade 1 Download e Instalação da aplicação Alura - Cursos online de tecnologia.mp4
74.8MB --> /home/usuario/Documentos/Ansible Sua infraestrutura como código/1 - Primeiros passos com Ansible/Ansible Aula 1 - Atividade 5 Instalando Ansible e o primeiro comando Alura - Cursos online de tecnologia.mp4
75.1MB --> /home/usuario/Documentos/Vagrant Automatização e implementação de entrega contínua/2 - Deployando uma aplicação web/Vagrant Aula 2 - Atividade 1 Vídeo 1 Alura - Cursos online de tecnologia.mp4
82.5MB --> /home/usuario/Documentos/Vagrant Automatização e implementação de entrega contínua/6 - Rodando no cloud/moderadores-master.zip
82.6MB --> /home/thauan/Documentos/Ansible Sua infraestrutura como código/7 - Trabalhando com variáveis e templates/Ansible Aula 7 - Atividade 1 Configurações flexíveis com variáveis Alura - Cursos online de tecnologia.mp4
85.8MB --> /home/usuario/Documentos/Ansible Sua infraestrutura como código/6 - Separando banco e aplicação/Ansible Aula 6 - Atividade 2 Reinstalando o servidor com um click Alura - Cursos online de tecnologia.mp4
88.7MB --> /home/usuario/Documentos/Vagrant Automatização e implementação de entrega contínua/4 - Configurando ambientes e software produção x desenvolvimento/Vagrant Aula 4 - Atividade 1 Vídeo 1 Alura - Cursos online de tecnologia.mp4
93.3MB --> /home/usuario/Documentos/Vagrant Automatização e implementação de entrega contínua/3 - Provisionando um mysql/Vagrant Aula 3 - Atividade 1 Vídeo 1 Alura - Cursos online de tecnologia.mp4
125.5MB --> /home/usuario/Documentos/Vagrant Automatização e implementação de entrega contínua/1 - Do hardware ao servidor web/Vagrant Aula 1 - Atividade 1 Vídeo 1 Alura - Cursos online de tecnologia.mp4
172.0MB --> /home/usuario/Documentos/Vagrant Automatização e implementação de entrega contínua/6 - Rodando no cloud/Vagrant Aula 6 - Atividade 1 Vídeo 1.mp4
281.7MB --> /home/usuario/Documentos/bbbbb/Deploy completo de uma aplicacao Django.mp4 ///// ////////////////// proxima etapa///////////////////
só que dentro desse script uma função que se for chamado mais um argumento, ele retornaria somente a quantidade de resultados, só que do decrescente, por exemplo: $ script.py /home/usuario/Documentos 3 ,ele me retorna os 3 maiores arquivos que tem na minha pasta Documentosai me retornaria assim : 125.5MB --> /home/usuario/Documentos/Vagrant Automatização e implementação de entrega contínua/1 - Do hardware ao servidor web/Vagrant Aula 1 - Atividade 1 Vídeo 1 Alura - Cursos online de tecnologia.mp4
172.0MB --> /home/usuario/Documentos/Vagrant Automatização e implementação de entrega contínua/6 -pas Rodando no cloud/Vagrant Aula 6 - Atividade 1 Vídeo 1.mp4
281.7MB --> /home/usuario/Documentos/bbbbb/Deploy completo de uma aplicacao Django.mp4
/// Só que quero passar mais um argumento, que seria me retornando os arquivos que foram criados a mais de 7 dias por exemplo ou 3 dias, por ordem de tamanho da mesma forma que tava antes , exemplo ja com o novo argumento: $ python script.py /home/usuario/Documentos 3 7
////// script //////////////
import datetime
import os
import sys
import time
from pprint import pprint
def readable(size):
si=('B','KB','MB','GB','TB', 'PB', 'EB', 'ZB', 'YB')
div = [n for n, m in enumerate(si) if pow(1024, n+1)>size][0]
return "%.1f%s"%(size/float(pow(1024, div)), si[div])
pairs = []
for path, dirs, files in os.walk(sys.argv[1]):
#for f in sorted(files, key=lambda f: os.path.getsize(path + os.sep + f)):
for f in files:
filepath = path + os.sep + f
if not (os.path.islink(filepath)):
size = os.path.getsize(filepath)
pairs.append((size, filepath))
# pprint(filepath+' '+size)
pairs.sort(key=lambda s: s[0], reverse=False)
def limite(pairs):
i = 1
while i <= int(sys.argv[2]):
print(readable(pairs[len(pairs)-i][0]) + ' --> ' + pairs[len(pairs)-i][1])
i+=1
def total(pairs):
for pair in pairs:
print(readable(pair[0]) + ' --> ' + pair[1])
#print(str(pair[0]) + ' - ' + pair[1])
if len(sys.argv) <= 2:
total(pairs)
else:
limite(pairs)