Hello everyone!
I'm doing a python script that walks through files in my PC. Basically I'm
searching files that end up with .shp, but these files must have extensions
with .shx and .dbf. I want to write a .txt document which tells the user if
a file doesn't exist in the directory. But I haven't been sucessful, I got
the txt with wrong data, it shows an existing file.
import os, csv, time, socket
from osgeo import ogr,gdal,osr
from dbf import *
gdal.AllRegister()
file_list = [
folders = Non
for root, folders, files in os.walk( "C:\\" ):
file_list.extend(os.path.join(root,fi) for fi in files if
fi.endswith(".shp"))
writer = csv.writer(open('csv_pruebita.csv', "wb"))
ruta = 'Ruta'
archivo = 'archivo'
prj = '.prj'
proyeccion = 'proyeccion'
campos = [ruta,archivo,prj,proyeccion]
writer.writerow(campos)
for row, filepath in enumerate(file_list, start=1):
(ruta, filename) = os.path.split(filepath)
shapeData = ogr.Open(filepath)
shp = 'Error al abrir el archivo' +filepat
log = open ("errors.txt","w+")
if shapeData is None:
print shp
log.write(shp + "\n")
else:
#I splitted the filepath because I need the same filepath but with different
extension
n = os.path.splitext(filepath)
p = n[0]+'.prj'
shx = n[0]+'.shx'
dbf = n[0]+'.dbf'
filepath = ''+filepath+''
filename = ''+filename+''
#This block is wrong, I think here is the problem
if os.path.exists(shx):
print 'El archivo ' +shx +' existe'
else:
log.write('No existe el archivo ' +shx + "\n")
if os.path.exists(dbf):
print 'El archivo ' +dbf +' existe'
log.write('No existe el archivo ' +dbf + "\n")
#This block works properly
if os.path.exists(p):
prj_text = open(p, 'r').read()
prjtext = ''+prj_text+''
aRow= [ filepath, filename, 1, prjtext]
writer.writerow(aRow)
else:
no_prj = 'Sin prj, no se puede determinar la proyeccion'
aRow1= [ filepath, filename, 0, no_prj]
writer.writerow(aRow1)
log.close()
print "El archivo esta listo"
___
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor