Python Byt namn på fil och katalog med os.rename()

⚡ Smart sammanfattning

Python byter namn på filer och kataloger med os.rename(). Här lär du dig os.rename(), os.renames(), shutil.move() och pathlib Path.rename(), plus hur man byter namn på en katalog och byter namn på flera filer i grupp med tydliga exempel.

  • ✏️ os.byt namn(): os.rename(src, dst) byter namn på en fil eller katalog; källkoden måste finnas.
  • 🗂️ os.renames(): os.renames() skapar också automatiskt saknade destinationsmappar.
  • 🚚 shutil.move(): shutil.move() byter namn på och kan flytta filer mellan filsystem.
  • 🐍 sökvägsbibliotek: Path.rename() byter namn på filer på ett objektorienterat sätt (Python 3.4+).
  • 🤖 AI-hjälp: AI-verktyg som Copilot genererar kodbyten och batchbyten direkt.

Python Byt namn på fil os.rename()

Python Döp om fil

Python rename() fil är en metod som används för att byta namn på en fil eller en katalog i Python programmering. De Python rename() filmetoden kan deklareras genom att skicka två argument som heter src (källa) och dst (Destination).

syntax

Detta är syntaxen för metoden os.rename().

os.rename(src, dst)

Driftparametrar

src: Källa är namnet på filen eller katalogen. Det borde redan finnas.

dst: Destination är det nya namnet på filen eller katalogen som du vill ändra.

Exempel:

import os  
os.rename('guru99.txt','career.guru99.txt')

Låt oss titta på exemplet i detalj

Du kan byta namn på originalfilen, vi har ändrat filnamnet från “Guru99.txt” till “Career.guru99.txt”.

Python Döp om fil

  • För att byta namn på filen "guru99.txt" kommer vi att använda "byt namn på funktion" i OS-modulen
  • Så när koden exekveras kan du observera att en ny fil "career.guru99.txt" skapas på höger sida av panelen, som vi döpte om till vår ursprungliga fil.

Här är den fullständiga koden

import os
import shutil
from os import path

def main():
	# make a duplicate of an existing file
    if path.exists("guru99.txt"):
	# get the path to the file in the current directory
        src = path.realpath("guru99.txt");
		
	# rename the original file
        os.rename('guru99.txt','career.guru99.txt') 
		
if __name__ == "__main__":
    main()

Hur man byter namn på en katalog i Python

Metoden os.rename() byter även namn på kataloger, inte bara filer. Skicka det aktuella mappnamnet som källa och det nya namnet som destination.

import os
os.rename("old_directory", "new_directory")

Om källkatalogen inte finns, Python genererar ett FileNotFoundError, så det är bra att kontrollera sökvägen först.

Byt namn på en fil med hjälp av os.renames()

Metoden os.renames() byter namn på en fil och skapar automatiskt eventuella saknade mellanliggande kataloger i målsökvägen. Den tar också bort tomma kataloger som finns kvar i källsökvägen.

import os
os.renames("guru99.txt", "archive/2024/career.txt")

Här skapas mapparna arkiv och 2024 automatiskt om de inte redan finns.

Byt namn på en fil med shutil.move()

Funktionen shutil.move() flyttar en fil till en ny plats, vilket i praktiken byter namn på den när destinationen är samma katalog.

import shutil
shutil.move("guru99.txt", "career.guru99.txt")

Till skillnad från os.rename() kan shutil.move() också flytta en fil mellan olika filsystem eller enheter.

Byt namn på en fil med hjälp av pathlib-modulen

In Python 3.4 och senare erbjuder pathlib-modulen en objektorienterad Path.rename()-metod för att byta namn på filer.

from pathlib import Path

file = Path("guru99.txt")
file.rename("career.guru99.txt")

Metoden rename() returnerar ett nytt Path-objekt som pekar på den omdöpta filen.

Hur man byter namn på flera filer i Python

För att byta namn på många filer samtidigt, loopa över filerna i en katalog med os.listdir() och anropa os.rename() för var och en. Exemplet nedan lägger till ett numrerat prefix till varje fil.

import os

folder = "myfiles"
for count, filename in enumerate(os.listdir(folder)):
    new_name = f"file_{count}.txt"
    os.rename(os.path.join(folder, filename), os.path.join(folder, new_name))

Genom att använda os.path.join() fortsätter koden att fungera korrekt på alla operativsystem.

Vanliga frågor

Importera operativsystemet och anropa os.rename(src, dst), och skicka det nuvarande filnamnet och det nya namnet. Källfilen måste redan finnas, eller Python genererar FileNotFoundError.

os.rename() byter namn på en enskild fil eller katalog, medan os.renames() också skapar eventuella saknade mellanliggande kataloger och tar bort tomma källmappar efter flytten.

Ja. shutil.move(src, dst) byter namn på en fil när destinationen är samma mapp, och kan även flytta filer mellan olika filsystem, till skillnad från os.rename().

Använd os.rename('old_dir', 'new_dir'). Samma os.rename()-funktion fungerar för både filer och kataloger, så länge källkatalogen finns.

Loopa över os.listdir(mapp) och anropa os.rename() för varje fil. Använd os.path.join() för att bygga fullständiga sökvägar så att koden fungerar på alla operativsystem.

AI-assistenter som GitHub Copilot autokompletterar os.rename()- och pathlib-anrop och genererar batch-omnamnsloopar från en kommentar som beskriver det namngivningsmönster du vill ha.

Ja. AI-drivna verktyg kan automatisera skrivning av batch-namnbytesskript, tillämpa mönster som numrering eller datumprefix och lägga till felhantering för saknade eller dubbletter av namn.

On Windows, os.rename() genererar FileExistsError om destinationen finns. På Unix skriver den över i tysthet. Kontrollera först med os.path.exists() för att undvika dataförlust.

Sammanfatta detta inlägg med: