Python Zmień plik

Python Zmień plik
„Python jest doskonałym narzędziem do automatyzacji i tworzenia prostych narzędzi, które pozwalają uprościć swoje życie. Zapewnia narzędzia, które umożliwiają interakcję z zasobami systemowymi niskiego poziomu, takimi jak dysk, jądro systemu operacyjnego, pamięć, sieci itp.

Jednym z scenariuszy, które często napotykasz jako programista Python, jest zarządzanie plikami. Jest zatem posiadanie kilku umiejętności, które dotyczą zarządzania plikami za pasem.

W tym samouczku damy ci jedną z tych umiejętności. Dowiesz się, jak zmienić nazwę pojedynczych lub wielu plików za pomocą Pythona."

Z tego powodu zacznijmy.

Python Zmień plik - moduł OS

Jednym z najbardziej przydatnych modułów w ekosystemie Python jest moduł OS. Zapewnia wiele narzędzi i funkcjonalności do interakcji z systemem operacyjnym.

Moduł OS jest bardzo obszerny, dlatego nie możemy go zbadać od początku do końca. Skoncentrujmy się jednak na jednej funkcji, która pozwala nam zmienić nazwę plików na systemie.

Funkcja REAMAME () w module systemu Pythona umożliwia zmianę nazwy istniejącego pliku w systemie.

Składnia jest jak pokazana poniżej:

OS.Zmień nazwę (plik, miejsce docelowe)

Podąża ścieżką pliku docelowego i ścieżki nowej nazwy pliku jako parametrów. Ponieważ zmieniasz nazwę pliku, należy upewnić się, że zarówno parametry pliku, jak i docelowe utrzymują różne wartości.

Uwaga: Chociaż moduł OS jest częścią standardowej biblioteki Pythona, musisz ją zaimportować przed użyciem.

Śledź wraz z poniższymi przykładami, aby dowiedzieć się, w jaki sposób możemy zmienić nazwę pliku za pomocą funkcji rename ().

Przykład 1 - Zmień nazwę pliku

Załóżmy, że mamy plik o nazwie „Backup.smocie ”i chcemy zmienić nazwę na„ Backup_raw.smoła.„Dla uproszczenia załóżmy, że plik, którą chcemy zmienić, znajduje się w tym samym katalogu, co nasz skrypt Python.

Korzystając z prostego kodu Pythona (źródło poniżej), możemy zmienić nazwę pliku. Poniższy zrzut ekranu pokazuje bieżący katalog przed zmianą nazwy pliku.

Następnie możemy uruchomić kod pokazany poniżej:

Z Zmieniania Importu OS
src = "./kopia zapasowa.zamek błyskawiczny"
dest = "./Backup_raw.zamek błyskawiczny"
Zmień nazwę (src, dest)

Rozbijmy kod.

Zaczynamy od zaimportowania funkcji Zmień nazwę z modułu OS. Nie jest konieczne import całego kodu z modułu OS, gdy go nie potrzebujemy.

Następnie tworzymy dwie zmienne. Taki, który utrzymuje ścieżkę do pliku, którą chcemy zmienić nazwę. Drugi utrzymuje ścieżkę nowej nazwy pliku.

Wreszcie, nazywamy funkcję Renyame () i przekazujemy parametry źródłowe i docelowe. Uruchomienie kodu powinno zmienić nazwę pliku docelowego, jak pokazano na wyniku zrzutu ekranu.

I oto mamy, pomyślnie zmieniliśmy nazwę pliku z kopii zapasowej.Zip to Backup_raw.zamek błyskawiczny.

Przykład 2 - ścieżki plików Windows

Weźmy kolejny przykład, w którym plik docelowy znajduje się w innym katalogu. Należy pamiętać, że struktura ścieżki zmieni się w zależności od docelowego systemu operacyjnego.

Załóżmy na przykład, że chcemy zmienić nazwę pliku o nazwie „Backups.Zip ”, który znajduje się w katalogu„ Backups ”użytkownika„ UNIX ”do„ Backups_raw.zamek błyskawiczny."

W systemach UNIX możemy użyć poniższego kodu, aby zmienić nazwę pliku na:

Z Zmieniania Importu OS
src = "/home/unix/backups/backups.zamek błyskawiczny"
dest = "/home/unix/backups/backups_raw.zamek błyskawiczny"
Zmień nazwę (src, dest)

W takim przypadku zapewniamy bezwzględną ścieżkę do starego i przemianowanego pliku.

W systemie Windows System możemy zmienić ścieżkę, aby przypominać poniższy kod:

Z Zmieniania Importu OS
src = "C: \\ Users \\ Unix \\ Backups \\ Backups.zamek błyskawiczny"
dest = "C: \\ Users \\ Unix \\ Backups \\ Backups_raw.zamek błyskawiczny"
Zmień nazwę (src, dest)

W powyższym przykładzie używamy znaku podwójnego backslash, aby uciec.

Należy pamiętać, że Python może nie lubić tej ścieżki. Sprawdź funkcję Python's Join () z modułu OS, aby dowiedzieć się, jak to pokonać.

Przykład 3 - Obsługa błędów

Chociaż funkcja renewent () umożliwia zmianę nazwy dowolnego pliku z dowolnej lokalizacji w systemie plików, może powodować błędy, jeśli na przykład:

  1. Plik docelowy nie istnieje.
  2. Plik o podobnej nazwie, jak istnieje już miejsce docelowe.
  3. Niewystarczające uprawnienie na docelowym pliku i katalogu.

Dlatego dobrą praktyką jest wdrożenie mechanizmu obsługi błędów. Dla uproszczenia postaramy się trzymać przy blok.

Rozważ przykładowy kod pokazany poniżej:

Z Zmieniania Importu OS
src = "./Old_file.tekst"
dest = "./nowy plik.tekst"
próbować:
Zmień nazwę (src, dest)
z wyjątkiem FillenotFounderRor jako e:
Drukuj (e)

W powyższym kodzie używamy try/oprócz bloku do obsługi błędu Fillenotfound.

Innym przykładem jest to, czy plik docelowy już istnieje. Przykładowy kod jest taki jak pokazano:

Z Zmieniania Importu OS
src = "./Old_file.tekst"
dest = "./nowy plik.tekst"
próbować:
Zmień nazwę (src, dest)
z wyjątkiem plikuSisterSerror jako e:
Drukuj (e)

Co jeśli nie mamy zgody na modyfikację pliku? Za to możemy podziękować temu. Sprawdź prosty kod pokazany poniżej:

Z Zmieniania Importu OS
src = "./Old_file.tekst"
dest = "./nowy plik.tekst"
próbować:
Zmień nazwę (src, dest)
z wyjątkiem uprawnień A jako E:
Drukuj (e)

Przykład 4 - Zmień nazwę wielu plików

W niektórych przypadkach możemy mieć katalog z listą plików, którą chcemy zmienić nazwę na coś innego.

Jak byśmy się z tym widzieli?

Pierwszym krokiem byłoby uzyskanie listy wszystkich plików w katalogu docelowym i przechowywanie.

Na szczęście funkcja ListDir z modułu OS pozwala nam dokładnie to zrobić.

Następnie możemy iterować każdy element w obiekcie iterowalnym za pomocą pętli i przypisać mu nową nazwę.

Podobnie postaramy się trzymać prostego przykładu.

W naszym przykładzie mamy folder o nazwie Apache_Velocity zawierający, zgadłeś, szablony prędkości Apache.

Struktura katalogu jest jak pokazana:

LS -LA apache_venicity
Łącznie 24
drwxr-xr-x@ 5 Salem Staff 160 5 czerwca 01:37 .
DRWX ------+ 9 SALEM PRACOWNIK 288 5 czerwca 01:41.
-rw-r-r-- 1 personel Salem 81 5 czerwca 01:39 Master.Vm
-rw-r-r-- 1 personel Salem 81 5 czerwca 01:39 root.Vm
-rw-r-r-- 1 personel Salem 81 5 czerwca 01:39 Niewolnik.Vm
Zobaczmy, jak możemy zmienić nazwę tych plików na coś innego.
Z Zmieniania Importu OS, Listdir
z systemu operacyjnego.Import ścieżki Dołącz
# Ustaw cel
Target_dir = "/Users/UserName/Desktop/Apache_Velocity"
#iterate pliki
dla pliku w Listdir (Target_DIR):
src = dołącz (targel_dir, plik)
Zmień nazwę (src, f "src.Bak ”)
Drukuj („Recursive Rangame Success”)
print (Listdir (Target_dir))

Powyższy kod jest stosunkowo prosty i może być znacznie ulepszony. Ale aby uniknąć nadmiernych komplikacji, trzymajmy się tego.

Zaczynamy od zaimportowania wymaganej funkcji.

  1. REAMAME (), który pozwala nam zmienić nazwę plików
  2. Listdir (), który pozwala nam wymienić pliki w danym katalogu.

Importujemy również funkcję łączenia () z systemu operacyjnego.Moduł ścieżki. Ta funkcja pozwala nam konstruować kompletne i komplatformowe ścieżki plików.

Następnie tworzymy zmienną, która utrzymuje ścieżkę do katalogu docelowego. I.mi., katalog, którego pliki chcemy zmienić nazwę.

Następnie tworzymy pętlę, która iteruje każdy plik w katalogu docelowym za pomocą ListDIR. Wewnątrz pętli otrzymujemy ścieżkę źródłową za pomocą funkcji połączenia.

I wreszcie, zmieniamy nazwę plików, dodając .rozszerzenie BAK do każdego pliku.

Jeśli uruchomimy powyższy kod, powinniśmy zobaczyć wyjście, jak pokazano

Widzimy, że pliki zostały przemianowane na Old_FileName.Bak.

Wniosek

W tym samouczku badaliśmy, w jaki sposób możemy zmienić nazwę plików za pomocą Pythona. Rozumieliśmy, jak pracować z funkcją zmiany nazwy, umożliwiając nam zmianę nazw pojedynczej lub wielu plików.

Dziękujemy za przeczytanie i szczęśliwe kodowanie!!