Python Μετονομασία αρχείου και καταλόγου χρησιμοποιώντας το os.rename()

⚡ Έξυπνη Σύνοψη

Python Μετονομάζει αρχεία και καταλόγους με την os.rename(). Εδώ θα μάθετε τις os.rename(), os.renames(), shutil.move() και pathlib Path.rename(), καθώς και πώς να μετονομάσετε έναν κατάλογο και να μετονομάσετε πολλά αρχεία σε παρτίδα με σαφή παραδείγματα.

  • os.rename(): Η συνάρτηση os.rename(src, dst) μετονομάζει ένα αρχείο ή έναν κατάλογο. Ο πηγαίος κώδικας πρέπει να υπάρχει.
  • 🗂️ os.renames(): Η συνάρτηση os.renames() δημιουργεί επίσης αυτόματα τους φακέλους προορισμού που λείπουν.
  • 🚚 shutil.move(): Η shutil.move() μετονομάζει και μπορεί να μετακινήσει αρχεία μεταξύ συστημάτων αρχείων.
  • 🐍 pathlib: Η Path.rename() μετονομάζει τα αρχεία με αντικειμενοστρεφή τρόπο (Python 3.4+).
  • 🤖 Βοήθεια με την Τεχνητή Νοημοσύνη: Τα εργαλεία τεχνητής νοημοσύνης όπως το Copilot δημιουργούν άμεσα κώδικα μετονομασίας και μαζικής μετονομασίας.

Python Μετονομασία αρχείου os.rename()

Python Μετονομασία αρχείου

Python αρχείο rename(). είναι μια μέθοδος που χρησιμοποιείται για τη μετονομασία ενός αρχείου ή ενός καταλόγου Python προγραμματισμός. Ο Python Η μέθοδος αρχείου rename() μπορεί να δηλωθεί περνώντας δύο ορίσματα που ονομάζονται src (Πηγή) και dst (Προορισμός).

Σύνταξη

Αυτή είναι η σύνταξη για τη μέθοδο os.rename().

os.rename(src, dst)

Παράμετροι

src: Source είναι το όνομα του αρχείου ή του καταλόγου. Πρέπει να υπάρχει ήδη.

dst: Προορισμός είναι το νέο όνομα του αρχείου ή του καταλόγου που θέλετε να αλλάξετε.

Παράδειγμα:

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

Ας δούμε το παράδειγμα αναλυτικά

Μπορείτε να μετονομάσετε το αρχικό αρχείο, αλλάξαμε το όνομα του αρχείου από "Guru99.txt" σε "Career.guru99.txt".

Python Μετονομασία αρχείου

  • Για να μετονομάσουμε το αρχείο "guru99.txt", θα χρησιμοποιήσουμε τη "λειτουργία μετονομασίας" στη λειτουργική μονάδα
  • Έτσι, όταν εκτελείται ο κώδικας, μπορείτε να παρατηρήσετε ότι δημιουργείται ένα νέο αρχείο "career.guru99.txt" στη δεξιά πλευρά του πίνακα, το οποίο μετονομάσαμε για το αρχικό μας αρχείο.

Εδώ είναι ο πλήρης κώδικας

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()

Πώς να μετονομάσετε έναν κατάλογο σε Python

Η μέθοδος os.rename() μετονομάζει επίσης καταλόγους, όχι μόνο αρχεία. Μεταβιβάστε το τρέχον όνομα φακέλου ως πηγή και το νέο όνομα ως προορισμό.

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

Εάν ο κατάλογος πηγής δεν υπάρχει, Python δημιουργεί ένα FileNotFoundError, επομένως είναι καλή πρακτική να ελέγχετε πρώτα τη διαδρομή.

Μετονομασία αρχείου χρησιμοποιώντας os.renames()

Η μέθοδος os.renames() μετονομάζει ένα αρχείο και δημιουργεί αυτόματα τυχόν ενδιάμεσους καταλόγους που λείπουν στη διαδρομή προορισμού. Επίσης, αφαιρεί τους κενούς καταλόγους που έχουν απομείνει στη διαδρομή προέλευσης.

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

Εδώ, οι φάκελοι αρχειοθέτησης και 2024 δημιουργούνται αυτόματα, εάν δεν υπάρχουν ήδη.

Μετονομασία αρχείου χρησιμοποιώντας shutil.move()

Η συνάρτηση shutil.move() μετακινεί ένα αρχείο σε μια νέα θέση, η οποία ουσιαστικά το μετονομάζει όταν ο προορισμός είναι ο ίδιος κατάλογος.

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

Σε αντίθεση με την os.rename(), η shutil.move() μπορεί επίσης να μετακινήσει ένα αρχείο σε διαφορετικά συστήματα αρχείων ή μονάδες δίσκου.

Μετονομασία αρχείου χρησιμοποιώντας την ενότητα pathlib

In Python 3.4 και νεότερες εκδόσεις, η ενότητα pathlib προσφέρει μια αντικειμενοστρεφή μέθοδο Path.rename() για τη μετονομασία αρχείων.

from pathlib import Path

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

Η μέθοδος rename() επιστρέφει ένα νέο αντικείμενο Path που δείχνει στο μετονομασμένο αρχείο.

Πώς να μετονομάσετε πολλά αρχεία σε Python

Για να μετονομάσετε πολλά αρχεία ταυτόχρονα, κάντε επανάληψη πάνω από τα αρχεία σε έναν κατάλογο με την εντολή os.listdir() και καλέστε την εντολή os.rename() για κάθε αρχείο. Το παρακάτω παράδειγμα προσθέτει ένα αριθμημένο πρόθεμα σε κάθε αρχείο.

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))

Η χρήση της συνάρτησης os.path.join() διατηρεί τον κώδικα σε σωστή λειτουργία σε οποιοδήποτε λειτουργικό σύστημα.

Συχνές Ερωτήσεις

Εισαγάγετε το λειτουργικό σύστημα και καλέστε το os.rename(src, dst), περνώντας το τρέχον όνομα αρχείου και το νέο όνομα. Το αρχείο προέλευσης πρέπει να υπάρχει ήδη ή Python προκαλεί το FileNotFoundError.

Η συνάρτηση os.rename() μετονομάζει ένα μεμονωμένο αρχείο ή κατάλογο, ενώ η συνάρτηση os.renames() δημιουργεί επίσης τυχόν ενδιάμεσους καταλόγους που λείπουν και αφαιρεί τους κενούς φακέλους πηγαίου κώδικα μετά τη μετακίνηση.

Ναι. Η εντολή shutil.move(src, dst) μετονομάζει ένα αρχείο όταν ο προορισμός είναι ο ίδιος φάκελος και μπορεί επίσης να μετακινήσει αρχεία σε διαφορετικά συστήματα αρχείων, σε αντίθεση με την εντολή os.rename().

Χρησιμοποιήστε την os.rename('old_dir', 'new_dir'). Η ίδια συνάρτηση os.rename() λειτουργεί τόσο για αρχεία όσο και για καταλόγους, εφόσον υπάρχει ο κατάλογος προέλευσης.

Εκτελέστε επανάληψη πάνω από το os.listdir(folder) και καλέστε την os.rename() για κάθε αρχείο. Χρησιμοποιήστε την os.path.join() για να δημιουργήσετε πλήρεις διαδρομές, ώστε ο κώδικας να λειτουργεί σε οποιοδήποτε λειτουργικό σύστημα.

Οι βοηθοί τεχνητής νοημοσύνης, όπως το GitHub Copilot, συμπληρώνουν αυτόματα τις κλήσεις os.rename() και pathlib και δημιουργούν βρόχους μαζικής μετονομασίας από ένα σχόλιο που περιγράφει το μοτίβο ονομασίας που θέλετε.

Ναι. Τα εργαλεία που υποστηρίζονται από την τεχνητή νοημοσύνη μπορούν να αυτοματοποιήσουν τη σύνταξη σεναρίων μετονομασίας παρτίδας, να εφαρμόσουν μοτίβα όπως αρίθμηση ή προθέματα ημερομηνίας και να προσθέσουν χειρισμό σφαλμάτων για ονόματα που λείπουν ή είναι διπλότυπα.

On Windows, η os.rename() εμφανίζει το FileExistsError εάν ο προορισμός υπάρχει. Στο Unix, αντικαθιστά σιωπηλά. Ελέγξτε πρώτα με την os.path.exists() για να αποφύγετε την απώλεια δεδομένων.

Συνοψίστε αυτήν την ανάρτηση με: