Python COPY File χρησιμοποιώντας shutil.copy (), shutil.copystat ()

Πίνακας περιεχομένων:

Anonim

Μέθοδοι αντιγραφής Python

Η Python παρέχει ενσωματωμένες λειτουργίες για εύκολη αντιγραφή αρχείων χρησιμοποιώντας τα βοηθητικά προγράμματα Shell του λειτουργικού συστήματος.

Η ακόλουθη εντολή χρησιμοποιείται για την Αντιγραφή αρχείου

shutil.copy(src,dst)

Η ακόλουθη εντολή χρησιμοποιείται για την αντιγραφή αρχείου με πληροφορίες μεταδεδομένων

shutil.copystat(src,dst)

Ακολουθούν τα βήματα για την αντιγραφή του αρχείου στο Python

Βήμα 1) Πριν, αντιγράφουμε ένα αρχείο, πρέπει να πάρουμε τη διαδρομή προς το αρχικό αρχείο στον τρέχοντα κατάλογο. Στον κώδικα -

  1. Δήλωση μεταβλητής
  2. Εφαρμογή διαίρεσης σε μεταβλητή

Επεξήγηση κώδικα

  • Πρώτα θα ελέγξουμε ότι το αρχείο "guru99.txt" υπάρχει ή όχι. Εφόσον έχουμε δημιουργήσει το αρχείο guru99.txt νωρίτερα, γνωρίζουμε ότι υπάρχει και θα συνεχίσουμε περαιτέρω με τον κώδικα
  • Αποθηκεύουμε τη διαδρομή αρχείου στη μεταβλητή " src " εάν υπάρχει το αρχείο σας
  • Μόλις λάβουμε τη διαδρομή, θα διαχωρίσουμε τη διαδρομή και το όνομα αρχείου
  • Για αυτό, θα χρησιμοποιήσουμε τη path.splitσυνάρτηση split στη μεταβλητή πηγής
  • Κωδικός όταν εκτελείται εκτυπώνει " όνομα αρχείου " και " διαδρομή αρχείου " ξεχωριστά

Βήμα 2) Χρησιμοποιούμε το Shutil Module για να δημιουργήσουμε ένα αντίγραφο του υπάρχοντος αρχείου. Εδώ δημιουργήσαμε ένα αντίγραφο του υπάρχοντος αρχείου μας "guru99.txt."

Επεξήγηση κώδικα

  • Πάρτε το αρχικό όνομα αρχείου "guru99.txt" και προσθέστε γράμματα .bak στο τέλος "guru99.txt.bak". Αυτό το όνομα με επέκταση .bak θα είναι το διπλότυπό μας αντίγραφο
  • Και μετά θα χρησιμοποιήσουμε τη λειτουργία αντιγραφής του βοηθητικού προγράμματος για αντιγραφή από την πηγή στον προορισμό
  • Όταν εκτελείτε τον κώδικα, θα δείτε ένα διπλότυπο αρχείο με επέκταση .bak στη δεξιά πλευρά του πίνακα

Βήμα 3) Η λειτουργία αντιγραφής αντιγράφει μόνο το περιεχόμενο του αρχείου, αλλά καμία άλλη πληροφορία. Για να αντιγράψετε μετα-δεδομένα που σχετίζονται με το αρχείο, την άδεια αρχείου και άλλες πληροφορίες πρέπει να χρησιμοποιήσετε τη λειτουργία " copystat ". Πριν εκτελέσουμε αυτόν τον κώδικα, πρέπει να διαγράψουμε το αρχείο αντιγραφής "guru99.text.bak".

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

Εδώ είναι ο κωδικός

import osimport shutilfrom os import pathdef main():# make a duplicate of an existing fileif path.exists("guru99.txt"):# get the path to the file in the current directorysrc = path.realpath("guru99.txt");#seperate the path from the filterhead, tail = path.split(src)print("path: +head)print("file: +tail)#let's make a backup copy by appending "bak" to the namedst = src+".bak"# nowuse the shell to make a copy of the fileshutil.copy(src, dst)#copy over the permissions,modificationshutil.copystat(src,dst)if __name__=="__main__":main()

Βήμα 4) Μπορείτε να ανακτήσετε τις πληροφορίες σχετικά με το αρχείο κειμένου που τροποποιήθηκε τελευταία

  • Γραμμή κώδικα # 15- Αναφέρει την ημέρα, την ημερομηνία, το μήνα, το χρόνο και την ώρα που το αρχείο .txt (guru99) τροποποιήθηκε τελευταία. Χρησιμοποιούμε τη λειτουργική μονάδα διαδρομής για να λάβουμε τις λεπτομέρειες του χρόνου τροποποίησης του αρχείου και, στη συνέχεια, θα χρησιμοποιήσουμε τη συνάρτηση time class c time για να τη μετατρέψουμε σε αναγνώσιμο χρόνο. Έτσι, όταν διατρέχουμε τον κωδικό, μπορούμε να δούμε το guru99.txt αρχείο τροποποιήθηκε τελευταία φορά στις Δευτ, 8η Ιανουαρίου ου στις 13:35 το 2018.
  • Code Line # 17- Κάνει το ίδιο πράγμα δίνοντας πληροφορίες σχετικά με την τροποποίηση αρχείων, αλλά έχει διαφορετική μορφή για να την αντιπροσωπεύσει. Εδώ χρησιμοποιούμε τη λειτουργία Get Modification Time (path.getmtime ("guru99.txt")). Τώρα αντί να χρησιμοποιήσουμε τη συνάρτηση c time, θα χρησιμοποιήσουμε τη λειτουργία From Time Stamp και θα φτιάξουμε ένα αντικείμενο ημερομηνίας ώρας. Στην έξοδο, μπορείτε να δείτε ότι η λεπτομέρεια του χρόνου τροποποίησης αρχείου εκτυπώνεται σε διαφορετική μορφή 2018-01-08, 13: 35: 51.334072

Εδώ είναι ο κωδικός

## Example file for working with o.s path moduleimport osfrom os import pathimport datetimefrom datetime import date, time, timedeltaimport timedef main():# Get the modification timet = time.ctime(path.getmtime("guru99.txt.bak"))print(t)print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak")))if __name__ == "__main__":main()

Περίληψη

  • Για να δημιουργήσετε ένα αντίγραφο του υπάρχοντος αρχείου χρησιμοποιώντας τον κωδικό shutil.copy (src, dst)
  • Για να αντιγράψετε όλες τις πληροφορίες του αρχικού αρχείου σε διπλότυπο αρχείο όπως άδεια αρχείου, χρόνο τροποποίησης ή πληροφορίες μεταδεδομένων χρησιμοποιώντας τον κωδικό shutil.copystat (src, dst)