Para listar os diretorios sem arquivos dentro uma maneira e utilizar o seguinte comando: find "/L1_TERRA/2011_01/tif/" -type d -depth -empty -print -exec \rm -rf {} \;Caso necessario encontrar arquivos vazios o comando e:find . -maxdepth 1 -empty -type f -exec rm {} \;Para apagar arquivos com mais de 30 dias:find /logs/virs375/log_cron_sh_20* -ctime +30 -exec /bin/rm {} \; Um exemplo de como utilizar o Pandas para formatar os dados criando uma tabela de referencia cruzada:import pandas as pddados = pd.read_csv("arquivo.csv")dados.describe()nfocos_ref nfocos_atnpp nf_aqua_terra julianday anocount 366.000000 366.000000 366.000000 366.000000 366.0mean 6.344262 52.486339 11.292350 183.500000 2016.0std 11.279588 88.889148 18.364328 105.799338 0.0min 0.000000 0.000000 0.000000 1.000000 2016.025% 0.000000 0.000000 0.000000 92.250000 2016.050% 0.000000 8.500000 2.000000 183.500000 2016.075% 8.000000 62.750000 15.000000 274.750000 2016.0max 68.000000 546.000000 117.000000 366.000000 2016.0pv=dados.pivot_table(index='ano', columns='julianday', values='nfocos_atnpp',aggfunc='sum')ano/julianday 1 2 3 4 5 6 7 8 9 101998 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN1999 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.02009 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 2.0 O links para a documentacao oficial e:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.crosstab.html Neste Exemplo sao apresentados metodos de leitura de arquivos matriciais fazendo uma varredura em uma pasta para entao processar todos os arquivo. Um ponto importante e que os dados foram lidos como array multidimensional, portanto sem informacao espacial, porem o arquivo de saida foi transformado em um Geotiff. import glob, os, sysimport numpy as npimport osgeo.gdal as gdalfrom osgeo import osrpath_in_aqm = r"c:\Projetos\AQM_Renata\Area_Queimada_modis_americadosul\aqm" #2005_01_AQM.binpath_in_foco = r"c:\Projetos\AQM_Renata\Area_Queimada_modis_americadosul\focos" #2005_01_grd_focos.binpath_out = r"c:\Projetos\AQM_Renata\Area_Queimada_modis_americadosul\aqm_focos_tif"anos = range(2005,2016)meses = ["%02d"%a for a in range(1,13)]#ano = 2014#mes = "06"for ano in anos: for mes in meses: arq_aqm = os.path.join(path_in_aqm,"%s_%s_AQM.bin"%(ano,mes)) arq_foco = os.path.join(path_in_foco,"%s_%s_grd_focos.bin"%(ano,mes)) arq_saida = os.path.join(path_out,"%s_%s_aqm_focos.tif"%(ano,mes)) img_aqm = np.fromfile(arq_aqm,dtype=np.int16,count=-1) img_foco = np.fromfile(arq_foco,dtype=np.int16,count=-1) img_aqm = np.resize(img_aqm,(6300,5000)) img_foco = np.resize(img_foco,(6300,5000)) idx_aqm = np.where(img_aqm==1,20,0) idx_foco = np.where(img_foco>0,40,0) nova_area = (idx_aqm+idx_foco).astype("uint8") #nova_area.tofile(path_in_aqm + "/comparacao_%s_%s_uint8.bin"%(ano,mes)) # definicioes para gravar um aquivo no formato envi usando gdal spatialRef = osr.SpatialReference() spatialRef.SetWellKnownGeogCS( "EPSG:4326" ) geotransform = ( -83.005, 0.01 , 0 , 13.005, 0 , -0.01) driver = gdal.GetDriverByName("GTIFF") ds = driver.Create(arq_saida, 5000,6300,1,gdal.GDT_Byte , ['COMPRESS=LZW']) ds.GetRasterBand(1).WriteArray(nova_area) ds.SetProjection(spatialRef.ExportToWkt()) ds.SetGeoTransform(geotransform) ds=Noneprint "Final do Processamento"print "-"*10 Uma forma de manipular array em BASH pode ser vista abaixo:lista=("ch1.env" "ch2.env" "ch20.env" "LandSeaMask.env" "SensorZenith.env" "SolarZenith.env")for ext in "${lista[@]}"doecho "arquivos.${ext}"case "${ext}" in ch1.env) #~ echo "nodata=0" nodata="0" type="UInt16" ;; ch2.env) echo "nodata=0" nodata="0" type="UInt16" ;; ch20.env) #~ echo "nodata=0" nodata="0" type="UInt16" ;; SensorZenith.env) #~ echo "nodata=-32767" nodata="-32767" type="Int16" ;; SolarZenith.env) #~ echo "nodata=-32767" nodata="-32767" type="Int16" ;; LandSeaMask.env) #~ echo "nodata=221" nodata="221" type="Byte" ;; esacdoneNote que neste caso o operador "@" esta controlando a iteracao de tal maneira que nao e necessario fazer a contagem do total de elementos do array. Porem caso seja necessario utilizar um elemento especifico esta forma nao atende. Sempre que tenho que trabalhar com datas em scripts python utilizo as funcoes date da seguinte maneira:import datetime as dtdef calc_lista_datas(datainicial, intervalo):saida = [] for d in range(1, intervalo +1): d1 = dt.datetime.strptime(str(datainicial), '%Y%m%d') d2 = d1 - dt.timedelta(days=int(d)) print d, d2.strftime('%Y%m%d') saida.append(d2.strftime('%Y%m%d')) return saidaprint calc_lista_datas(20160101, 120)Isto ajuda a criar uma lista de datas.Maiores detalhes recomendo:http://strftime.org/ Tive alguns problemas na conversao de dados que estavam separados por espacos para formatar um