sexta-feira, 29 de janeiro de 2021

Programa conta arquivos para Ubuntu

Ao copiar uma pasta muito grande com 5000 arquivos para backup deu erro!

Então fiz essa implementação.

Necessário python3 instalado, nas versões recentes já vem instalado por padrão, verifique: $ which python3

Caso retorne: " /usr/bin/python3" já esta instalado. Se não retorna nada instale com:

$ apt install python3

Crie os arquivos com os nomes e siga as instruções do arquivo .sh

-------------------------  nome do arquivo: contaArquivosEmDiretorios .sh

#!/bin/sh
# Mostra o diretório com mais arquivos no final
#Abra um terminal na mesma pasta e execute $ ./contaArquivosEmDiretorios.sh
#Salva um arquivo na Pasta Pessoal
cp contaArquivosEmDiretorios.py ~/contaArquivosEmDiretorios.py
cd ~
ls -Rl|egrep "^./|^-" >> contaArquivos.txt
python3 contaArquivosEmDiretorios.py
rm -r contaArquivos.txt
rm -r contaArquivosEmDiretorios.py

-------------------------

 

-------------------------   nome do arquivo: contaArquivosEmDiretorios.py

def contaArquivo():#inclui ocultos
    file = 'contaArquivos.txt'
    with open(file, 'r') as txt:
        text = txt.readlines()
        m, c, a, f, tf = 0, 0, '~\n', '', ''
        for i in text:
            if i[0] == '.':
                if m < c:
                    f = a
                    m = c
                #print(c,a)
                tf += str(c)
                tf += a
                a = i
                c = 0
               
            if i[0] == '-':
                c += 1
        print(tf,'------Direttorio com mais arquivos:\n', f, m,'\n')
    file = 'contaArquivosPy.txt'
    with open(file, 'w') as txt:
        txt.write(str(tf))
contaArquivo()

-------------------------

------------------------- nome do arquivo: contaArquivosEmDiretorios.py

def contaArquivo(): #versão 2 ordena as pastas :)

    file = 'contaArquivos.txt'
    with open(file, 'r') as txt:
        text = txt.readlines()
       
        m, c, a, f, tf, tf1 = 0, 0, '~\n', '', '', ''
        for i in text:
            if i[0] == '.':
                if m < c:
                    f = a
                    m = c
                #print(c,a)
                tf += str(c)
                tf += a
                a = i
                c = 0
            if i[0] == '-':
                c += 1
        tf += "----------Maior----------:\n     " + str(m) + f + "----------\n"
    #return tf
    
    r = input("Gravar? (s) : ")
    if r == "s":
        file = 'contaArquivosPy.txt'
        with open(file, 'w') as txt:
            txt.write(str(tf))
           
def ordena(m):# m = maior quantidade de arquivos na pasta, ate (999)testado.
    #print(text)
    file = 'contaArquivosPy.txt'
    with open(file, 'r') as txt:
        text = txt.readlines()
    print(text)
    i0, tf1, tf2, tf3, cont = 0, '', '', '',''
    while i0 <= m:
        for i in text:
            #print(i[0], i0, i)
            if i[:2] == str(i0)+".":
                #print("grava1:",i)
                tf1 += i
            if i[:3] == str(i0)[:2]+"." and i0 < 100:# 100[:2]+"."=10. ;)
                print(i[:3],str(i0)[:2]+".",i,end='')
                tf2 += i
            cont += str(i0)+","
            if i[:4] == str(i0)[:3]+".":
                tf3 += i
        i0 += 1
    cont = tf1 + tf2 + tf3
    print(cont)
    #return cont
    #print(tf1, "<---tf1 (1 digito.), e tf2 (2 diditos.)--->\n", tf2)
    #print("3 digitos: --->\n", tf3)
    
    r = input("Gravar? (s) : ")
    if r == "s":
        file = 'ordenadosPy.txt'
        with open(file, 'w') as txt:
            txt.write(str(cont))

contaArquivo()
m = 999
ordena(m)
 -------------------------

Nenhum comentário:

Postar um comentário