Python zmiana nazw plików
Python

Python zmiana nazw plików

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

Python - zmiana nazw plików - pliki przed zmianą

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: Python - zmiana nazw plików - 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ą:

Python - zmiana nazw plików w różnych katalogach - pliki przed zmianą

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:

Python - zmiana nazw plików w różnych katalogach - 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ą:

Python - zmiana nazw plików w różnych katalogach - pliki przed zmianą

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:

Python - zmiana nazw plików w różnych katalogach - pliki po zmianie - dodanie do nazwy pliku nazwy z katalogu, w którym plik się znajduje

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

Programista C#, VBA
Udostępnij wpis: udostępnij Facebook udostępnij Linkedin udostępnij e-mail

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

    Podobne artykuły z kategorii: Python

    Może Cię zainteresować