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 "" |