Commit c1a1afbf4b0cb05254e5a09df958b4821a576282
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
pyutil.py
@@ -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 "" |