Je suis en train de:Copier un fichier vers un nouvel emplacement et le nom incrément, python
- boucle à travers un tas de fichiers
- fait quelques changements
- Copiez l'ancien fichier dans un sous-répertoire. Voici le kicker Je ne veux pas écraser le fichier dans le nouveau répertoire s'il existe déjà. (Par exemple, si "Filename.mxd" existe déjà, copiez et renommez "Filename_1.mxd" Si "Filename_1.mxd" existe, copiez le fichier sous "Filename_2.mxd" et ainsi de suite ...)
- enregistrer le fichier (mais faire enregistrer, pas enregistrer comme pour qu'il remplace le fichier existant)
il va quelque chose comme ceci:
for filename in glob.glob(os.path.join(folderPath, "*.mxd")):
fullpath = os.path.join(folderPath, filename)
mxd = arcpy.mapping.MapDocument(filename)
if os.path.isfile(fullpath):
basename, filename2 = os.path.split(fullpath)
# Make some changes to my file here
# Copy the in memory file to a new location. If the file name already exists, then rename the file with the next instance of i (e.g. filename + "_" + i)
for i in range(50):
if i > 0:
print "Test1"
if arcpy.Exists(draftloc + "\\" + filename2) or arcpy.Exists(draftloc + "\\" + shortname + "_" + str(i) + extension):
print "Test2"
pass
else:
print "Test3"
arcpy.Copy_management(filename2, draftloc + "\\" + shortname + "_" + str(i) + extension)
mxd.save()
alors, 2 choses que je décidé de faire, a été juste pour définir la plage de fichiers bien au-delà de ce que je m'attends à jamais (50). Je suis sûr qu'il y a une meilleure façon de procéder, en augmentant simplement le nombre suivant sans définir de plage. La deuxième chose, comme vous pouvez le voir, est que le script enregistre tout dans la plage. Je veux juste l'enregistrer une fois sur l'instance suivante de i qui ne se produit pas.
Hope this sens,
Mike
J'ai essayé ceci et il se bloque quand la sauvegarde a lieu. Pas vraiment sûr pourquoi ... – Mike