Data: 14.07.2021

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ą:

Program, za pomocą którego zmieniam nazwy plików:
import osfolder = 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:

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ą:

Program, za pomocą którego zmieniam nazwy plików:
import osroot = 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:

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ą:

Program, za pomocą którego zmieniam nazwy plików.
import osroot = 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:

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.
