Commit c1a1afbf4b0cb05254e5a09df958b4821a576282

Authored by André Araújo
1 parent c0bf33cd
Exists in master

Adiciona opção de sobreescrever arquivo e/ou usar estampa de tempo na função renomear

Showing 1 changed file with 46 additions and 14 deletions   Show diff stats
@@ -87,22 +87,54 @@ def file_exists(filePath): @@ -87,22 +87,54 @@ def file_exists(filePath):
87 else: 87 else:
88 return False 88 return False
89 89
90 -def file_rename(filename, fromfile): 90 +# @def Função para renomear arquivo de video gerado pelo blender
  91 +# @see entrada: /temp/arquivo_video_0001-0250.mp4
  92 +# @see saida: /temp/arquivo_video.mp4
  93 +# @param string fileFullPath: Caminho do arquivo a ser renomeado
  94 +# @param bool useTimeStamp: Renomeia o arquivo de acordo com a data e hora do sistema
  95 +# @param bool overwrite: Sobreescreve o arquivo
  96 +# @return string Retorna o nome do arquivo renomeado
  97 +def file_rename(fileFullPath, useTimeStamp = False, overwrite = True):
91 from shutil import move 98 from shutil import move
92 - newFilename = ""  
93 - isValidChar = True 99 + from os.path import abspath, basename, dirname, join, splitext
  100 + if (file_exists(fileFullPath) == False):
  101 + return ""
  102 + filePath = dirname(abspath(fileFullPath))
  103 + filename = basename(splitext(fileFullPath)[0])
  104 + extension = splitext(fileFullPath)[1]
  105 + filenameInv = ""
  106 + isValidChar = False
  107 +
  108 + # Percorre o "filename" do final para o inicio copiando caracteres após o primeiro '_' encontrado
94 for char in reversed(filename): 109 for char in reversed(filename):
95 if (isValidChar == True): 110 if (isValidChar == True):
96 - newFilename += char 111 + filenameInv += char
97 if (char == '_'): 112 if (char == '_'):
98 isValidChar = True 113 isValidChar = True
99 - elif (char == '.'):  
100 - isValidChar = False  
101 - if (len(filename) != len(newFilename)):  
102 - try:  
103 - move(filename, newFilename[::-1])  
104 - return 1  
105 - except Exception as e:  
106 - printStackTrace(fromfile)  
107 - return 0  
108 - return 0 114 + try:
  115 +
  116 + # Inverte sequencia de caracteres que foi copiada
  117 + filenameInv = filenameInv[::-1]
  118 +
  119 + if (useTimeStamp == True):
  120 + # Recupera novo fullPath + nome do arquivo + data/hora + extensão
  121 + newFilename = join(filePath, "%s_%s%s" % (filenameInv, getTimeStamp(), extension))
  122 + else:
  123 + # Recupera novo fullPath + nome do arquivo + extensão
  124 + newFilename = join(filePath, "%s%s" % (filenameInv, extension))
  125 +
  126 + # Enumera o nome do arquivo caso o parametro "overwrite" seja "False" e o arquivo já exista
  127 + if (overwrite == False):
  128 + count = 0
  129 + while (file_exists(newFilename) == True):
  130 + count += 1
  131 + # newFilename = join(filePath, "%s_%i%s" % (filenameInv, count, extension))
  132 + newFilename = join(filePath, "%s_%0.4i%s" % (filenameInv, count, extension))
  133 +
  134 + log("Rename: '%s' to: '%s'" %(fileFullPath, newFilename))
  135 + move(fileFullPath, newFilename)
  136 + return newFilename
  137 +
  138 + except Exception as e:
  139 + printStackTrace(__file__)
  140 + return ""