Data: 14.07.2021

Automatyczna zmiana nazw plików przy użyciu Pythona

Python zmiana nazw plików

Spis treści

W artykule znajdziesz informacje, w jaki sposób za pomocą języka Python zmienić nazwy wielu plików.

Informacje o tym, w jaki sposób zainstalować Pythona, a wraz z nim IDLE (środowisko programistyczne), znajdziesz w artykule Python instalacja

Pliki, którym chcemy zmienić nazwy, mogą znajdować w jednym lub w kilku różnych katalogach.

Zmiana nazw plików, jeśli pliki są w tym samym katalogu

Pliki przed zmianą:

Title

Program, za pomocą którego zmieniam nazwy plików:

import os
folder = r'C:\home\raporty'
objs = os.listdir(folder)
for src in objs:
full_src = os.path.join(folder, src)
if os.path.isfile(full_src):
dst = src.replace('.xlsx', '_2020.xlsx')
if src != dst:
full_dst = os.path.join(folder, dst)
os.rename(full_src, full_dst)

Dane, które trzeba zmienić w programie:

  • do zmiennej o nazwie „folder” należy przypisać ścieżkę, do katalogu, w którym znajdują się pliki. Litera r poprzedzająca ścieżkę, powoduje, że program traktuje znak „\” jako zwykły znak, a nie znak specjalny
  • do zmiennej o nazwie „dst” należy przypisać wynik działania funkcji replace(). W funkcji replace() należy zmodyfikować parametry tzn. podać jaką nazwę chcemy zmienić na jaką. W przykładzie zmieniam „.xlsx” na „_2020.xlsx”.

Pliki po zmianie: Title

Zmiana nazw plików, które są w podkatalogach

Jeśli pliki znajdują się w podkatalogach, w programie należy wskazać katalog główny. Wówczas wszystkie pliki we wskazanym katalogu głównym oraz w znajdujących się w nim podkatalogach zostaną przejrzane.

Pliki przed zmianą:

Title

Program, za pomocą którego zmieniam nazwy plików:

import os
root = r'c:\home\raporty'
for folder, dirs, files in os.walk(root):
for src in files:
full_src = os.path.join(folder, src)
if os.path.isfile(full_src):
dst = src.replace('.xlsx', '_2020.xlsx')
if src != dst:
full_dst = os.path.join(folder, dst)
os.rename(full_src, full_dst)

Dane, które trzeba zmienić w programie:

  • do zmiennej o nazwie „root” należy przypisać ścieżkę do katalogu głównego, który ma być przejrzany przez program razem ze znajdującymi się w nim podkatalogami.
  • do zmiennej o nazwie „dst” należy przypisać wynik działania funkcji replace(). W funkcji replace() należy zmodyfikować parametry tzn. podać jaką nazwę chcemy zmienić na jaką. W przykładzie zmieniam „.xlsx” na „_2020.xlsx”.

Pliki po zmianie:

Title

Dodanie do nazwy pliku nazwy katalogu, z którego plik pochodzi

W tym przykładzie do nazw plików dodaję rok 2020 oraz nazwę katalogu, w którym pliki się znajdują.

Pliki przed zmianą:

Title

Program, za pomocą którego zmieniam nazwy plików.

import os
root = r'c:\home\raporty'
for folder, dirs, files in os.walk(root):
for src in files:
full_src = os.path.join(folder, src)
if os.path.isfile(full_src):
suffix = '_2020_' + os.path.basename(folder)
dst = src.replace('.xlsx', suffix + '.xlsx')
if src != dst:
full_dst = os.path.join(folder, dst)
os.rename(full_src, full_dst)

Dane, które trzeba zmienić w programie:

  • do zmiennej o nazwie „root” należy przypisać ścieżkę do katalogu głównego, który ma być przejrzany przez program razem ze znajdującymi się w nim podkatalogami.
  • do zmiennej o nazwie „suffix” przypisuję wartość 2020 oraz wynik zwrócony przez metodę os.path.basename – jest to nazwa katalogu, w którym plik jest zawarty
  • do zmiennej o nazwie „dst” przypisuję wynik działania funkcji replace(). W funkcji replace należy zmodyfikować parametry tzn. jaką nazwę chcemy zmienić na jaką. W przykładzie zmieniam rozszerzenie „.xlsx” na wartość znajdującą się w zmiennej „suffix” + rozszerzenie .xlsx”.

Pliki po zmianie:

Title

Python jest idealnym językiem do automatyzacji pracy np. szybkiej zmiany wielu nazw plików.

Jak zawsze zachęcamy do kontaktu z nami, jeśli potrzebujesz informacji na jakiś temat związany z językiem Python. Postaramy się odpowiedzieć na każde pytanie.

Tomasz Majewski
Tomasz Majewski
Programista C#, Python, VBA
Udostępnij wpis:udostępnij Facebookudostępnij Linkedinudostępnij e-mail

Polecane