banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#1 Fri 23 August 2013 11:26

guil31
Participant actif
Date d'inscription: 22 Jan 2013
Messages: 79

ArcGis 10.0 Python - Fichier dbf lock: comment le dé-verrouiller?

Bonjour,

J'ai un script dans lequel je génère dans une boucle des fichiers dbf avec : arcpy.TableToTable_conversion()

Le script se termine bien.
Mais quand je veux supprimer mon répertoire qui contient ces dbf j'ai un message qui concerne uniquement le dernier dbf crée:

"Impossible de supprimer fichier.dbf.UC......sr.lock: Cette ressource est utilisée par une autre personne ou un autre programme.
Fermez les programmes susceptibles d'utiliser le fichier et essayer à nouveau."

Effectivement si je ferme ArcCatalogue et que je le relance, je peux supprimer mon répertoire.
C'est un peu pénible (surtout en phase de dev).

Est-ce que qq sait s'il y a moyen dans le code de dé-verrouiller le fichier?

Hors ligne

 

#2 Fri 23 August 2013 12:01

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 990
Site web

Re: ArcGis 10.0 Python - Fichier dbf lock: comment le dé-verrouiller?

Bonjour,

Un moyen détourné =>
Il est possible de passer par un scratchWorkspace (espace de travail temporaire) pour stocker les données intermédiaires des géotraitements.
http://resources.arcgis.com/fr/help/mai … 0003000000

Martin

Dernière modification par nitram (Fri 23 August 2013 12:03)

Hors ligne

 

#3 Fri 23 August 2013 12:12

guil31
Participant actif
Date d'inscription: 22 Jan 2013
Messages: 79

Re: ArcGis 10.0 Python - Fichier dbf lock: comment le dé-verrouiller?

J'ai déjà essayé:

Au tout debut de mes traitements j'ai fait un : arcpy.env.workspace = rep_travail sur le répertoire où je génère mes dbf
Puis à la fin de mon script j'ai fait un arcpy.env.scratchWorkspace = rep_travail

C'est ce même répertoire de travail que je n'arrive pas à supprimer ensuite à cause d'un dbf verrouiller
(Pour info je ne travail pas dans une géodatabase)

Hors ligne

 

#4 Fri 23 August 2013 12:32

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 990
Site web

Re: ArcGis 10.0 Python - Fichier dbf lock: comment le dé-verrouiller?

Mais ce scratchWorkspace n'est pas vidé par défaut à la fin de l'exécution du script?

Dernière modification par nitram (Fri 23 August 2013 12:33)

Hors ligne

 

#5 Fri 23 August 2013 13:42

guil31
Participant actif
Date d'inscription: 22 Jan 2013
Messages: 79

Re: ArcGis 10.0 Python - Fichier dbf lock: comment le dé-verrouiller?

En fait je n'avais pas compris il faut mettre :arcpy.env.scratchWorkspace = rep_travail au début du script

Mais ca ne marche quand même pas.
Comment on sait si scratchWorkspace est vidé à la fin du script?

Hors ligne

 

#6 Mon 26 August 2013 09:08

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 990
Site web

Re: ArcGis 10.0 Python - Fichier dbf lock: comment le dé-verrouiller?

Bonjour,

Comment on sait si scratchWorkspace est vidé à la fin du script?


En allant vérifier par Arcatalog / explorateur de fichiers...

Hors ligne

 

#7 Tue 27 August 2013 09:37

guil31
Participant actif
Date d'inscription: 22 Jan 2013
Messages: 79

Re: ArcGis 10.0 Python - Fichier dbf lock: comment le dé-verrouiller?

En fait, j'ai fait un script que je lance depuis une boite à outil dans ArcCatalogue.

Je génère des fichiers dbf, shp et mxd dans les répertoires "data_out\shp" et "data_out\cartes".A la fin des scripts je veux garder tous ces fichiers et répertoires dans "data_out".
J'ai aussi un répertoire "data_out\travail" que je supprime automatiquement dans mon script.

Par contre, comme je suis en phase de dev, avant de relancer mon outil je veux supprimer dans ArcCatalogue tout le répertoire "data_out" y compris ces sous répertoires. Et c'est là que j'ai le message car dans "data_out\shp" j'ai des fichiers qui sont verrouillés.

Ce que j'ai essayé sans succès c'est :
arcpy.env.workspace = "data_out\travail"
et aussi :arcpy.env.workspace = "data_out\shp"

Tant que je n'ai pas quité ArcCatalogue j'ai des fichiers xxxx.lock dans "data_out\shp"

Hors ligne

 

#8 Fri 30 August 2013 11:06

kant_ein
Participant occasionnel
Date d'inscription: 7 Apr 2008
Messages: 34

Re: ArcGis 10.0 Python - Fichier dbf lock: comment le dé-verrouiller?

Bonjour,

As-tu essayé en insérant la fonction RefreshCatalog avant de supprimer les fichiers ?

Hors ligne

 

#9 Thu 05 September 2013 15:18

guil31
Participant actif
Date d'inscription: 22 Jan 2013
Messages: 79

Re: ArcGis 10.0 Python - Fichier dbf lock: comment le dé-verrouiller?

Et non ca ne marche pas non plus.

J'ai un autre problème qui est peut-être lié et que je n'avais pas remarqué avant car je ne lançais le script que sur un échantillon de données:

Dans mon script je fais une boucle sur un curseur et pour chaque enregistrement:
- je croise des couches
- je sors des stat
- ....
- je remplis un fichier csv
- je fais un mxd en m'appuyant sur un mxd qui me sert de modèle et pour lequel je change les sources, le titre, ...
- j'exporte en pdf
Quand je lance mon script au bout d'environ 50 itérations j'ai un plantage sur une commande d'export en pdf
(alors que cette commande est passée une cinquantaine de fois avant)

Quand je fais des [MakeTableView_management] et des [MakeFeatureLayer_management] je pense bien à faire des [Delete_management] derrière
Je supprime également les curseurs que j'ai créés entre temps

Je pense qu'il me manque un 'nettoyage' dans mon code mais je ne sais pas trop quoi ....

Hors ligne

 

Pied de page des forums

Powered by FluxBB