A função a seguir que busca de maneira recursiva arquivos de dada extensão, inclusive links simbólicos se existirem.
O caráter recursivo e a busca em links, recurse
e followlinks
simbólicos pode ser desativados por meio dos parâmetros e opcionalmente pode ser varrido somente o conjunto de pastas indicado em folders
e os arquivos com extensões indicadas em extensions
def get_files(path, extensions=None, recurse=True, folders=None, followlinks=True)->L:
"Get all the filerefas in `path` with optional `extensions`, optionally with `recurse`, only in `folders`, if specified."
path = Path(path)
folders = L(folders)
if extensions is not None:
extensions = {e.lower() for e in setify(extensions)}
if recurse:
return recursive_walk(path, folders, extensions, followlinks)
f = [o.name for o in os.scandir(path) if o.is_file()]
return _get_files(path, f, extensions)
O Objeto retornado
L
é uma extensão da lista python com funcionalidades adicionais, uma delas como podemos ver é que a representação da lista impressa mostra o comprimento da lista. Esse objeto pode ser usado de maneira idêntica à uma lista em python e sem substituição desta.
Otimização dos Tipos de dados
A serem criados dataframes, normalmente a tipo de data é aquele com maior resolução possível, nem sempre isso é necessário, os arquivos de espectro mesmo possuem somente uma casa decimal, portanto um float16
já é suficiente para armazená-los. As funções a seguir fazem essa otimização
Code below borrowed from https://medium.com/bigdatarepublic/advanced-pandas-optimize-speed-and-memory-a654b53be6c2
Extração de Atributos dos objetos.
A função getattrs
é uma abstração simples para extração de atributos de diferentes objetos, no entanto é amplamente utilizada ao longo das funções e métodos dos módulos.