Existe uma maneira fácil de renomear um grupo de arquivos já contidos em um diretório, usando Python?
Exemplo: tenho um diretório cheio de arquivos * .doc e desejo renomeá-los de forma consistente.
X.doc -> "novo (X) .doc"
Y.doc -> "novo (Y) .doc"
python
file-io
rename
batch-rename
Nate
fonte
fonte
%
símbolo é usado no comandoos.path.join(dir, titlePattern % title + ext)
? Eu sei que%
é para operação de módulo e também é usado como um operador de formatação. Mas geralmente é seguido pors
ouf
para especificar o formato. Por que nada (espaço) está imediatamente após%
no referido comando?Eu prefiro escrever pequenas linhas para cada substituição que tenho que fazer, em vez de fazer um código mais genérico e complexo. Por exemplo:
Isso substitui todos os sublinhados por hifens em qualquer arquivo não oculto no diretório atual
fonte
rename
:(no such file error
apenas lembrar,os.rename
precisa do caminho completoSe você não se importa em usar expressões regulares, esta função lhe dará muito poder para renomear arquivos:
Portanto, em seu exemplo, você poderia fazer (assumindo que seja o diretório atual onde os arquivos estão):
mas você também pode reverter para os nomes de arquivo iniciais:
e mais.
fonte
Eu tenho isso para simplesmente renomear todos os arquivos em subpastas da pasta
Estou substituindo todas as ocorrências de old_str com qualquer case por new_str.
fonte
Experimente: http://www.mattweber.org/2007/03/04/python-script-renamepy/
O código-fonte do programa também está disponível.
fonte
Escrevi um script python sozinho. Toma como argumentos o caminho do diretório no qual os arquivos estão presentes e o padrão de nomenclatura que deseja usar. No entanto, ele renomeia anexando um número incremental (1, 2, 3 e assim por diante) ao padrão de nomenclatura fornecido.
Espero que funcione para voce.
fonte
fonte
os.chdir(path_of_directory)
fonte
Tive um problema semelhante, mas queria acrescentar texto ao início do nome do arquivo de todos os arquivos em um diretório e usei um método semelhante. Veja o exemplo abaixo:
fonte
quanto a mim no meu diretório, tenho vários subdiretórios, cada subdiretório tem muitas imagens. Quero alterar todas as imagens dos subdiretórios para 1.jpg ~ n.jpg
(minha própria resposta) https://stackoverflow.com/a/45734381/6329006
fonte
fonte
Se desejar modificar os nomes dos arquivos em um editor (como o vim), a biblioteca de cliques vem com o comando
click.edit()
, que pode ser usado para receber entrada do usuário de um editor. Aqui está um exemplo de como ele pode ser usado para refatorar arquivos em um diretório.Eu escrevi um aplicativo de linha de comando que usa a mesma técnica, mas que reduz a volatilidade desse script e vem com mais opções, como refatoração recursiva. Aqui está o link para a página do github . Isso é útil se você gosta de aplicativos de linha de comando e está interessado em fazer algumas edições rápidas nos nomes dos arquivos. (Meu aplicativo é semelhante ao comando "bulkrename" encontrado no ranger ).
fonte
Este código funcionará
A função leva exatamente dois argumentos f_patth como seu caminho para renomear arquivo e new_name como seu novo nome para o arquivo.
fonte