Θέλετε να βελτιώσετε τις ικανότητές σας στο Python; Στη συνέχεια, μπορείτε να δοκιμάσετε να εκτελέσετε ορισμένες εργασίες στον υπολογιστή σας με το Python. Η αντιγραφή και επικόλληση αρχείων από έναν κατάλογο σε έναν άλλο με την Python είναι ένας διασκεδαστικός τρόπος για να το κάνετε αυτό.
Εκτός από τη διασκέδαση, σας επιτρέπει να διαβάζετε και να γράφετε αρχεία γρήγορα χωρίς να αποσπούν την προσοχή σας από τον κωδικό σας. Εάν είστε νέοι στην Python, είναι μια δεξιότητα που ίσως χρειαστεί να πάρετε με τον ένα ή τον άλλο τρόπο. Ας μάθουμε λοιπόν πώς να αντιγράψουμε αρχεία με την Python μέσω αυτής της ανάρτησης.
Απαιτήσεις για αντιγραφή αρχείων με Python
Υπάρχουν πολλοί τρόποι αντιγραφής και επικόλλησης αρχείων με το Python. Έτσι, η απαίτηση για να το κάνει ποικίλλει και εξαρτάται από τη μέθοδο που αποφασίζετε να χρησιμοποιήσετε.
Αν και ενδέχεται να μην χρειάζεστε επιπλέον λειτουργικές μονάδες για να αντιγράψετε αρχεία με το Python, μπορείτε ακόμα να χρησιμοποιήσετε ενσωματωμένες βιβλιοθήκες εάν θέλετε.
Για παράδειγμα, εάν θέλετε να χρησιμοποιήσετε το ΟΣ μέθοδος, πρέπει να την εισαγάγετε στον κωδικό σας. Ωστόσο, ένας από τους δημοφιλείς τρόπους αντιγραφής αρχείων με το Python είναι η χρήση του σφιχτά βιβλιοθήκη.
Ας δούμε πώς μπορούμε να χρησιμοποιήσουμε αυτές τις διάφορες μεθόδους για να αντιγράψουμε αρχεία με το Python.
Πώς να αντιγράψετε αρχεία χρησιμοποιώντας την ενσωματωμένη βιβλιοθήκη Shutil της Python
ο σφιχτά Το module είναι μια ενσωματωμένη και ισχυρή βιβλιοθήκη Python για γρήγορη ανάγνωση και εγγραφή αρχείων στο Python.
Για να το χρησιμοποιήσετε, χρειάζεται μόνο να παρέχετε την πλήρη διαδρομή των αρχείων προέλευσης και προορισμού.
Στην ουσία, σφιχτά παίρνει αυτήν τη μορφή:
shutil.copy ([διαδρομή καταλόγου πηγής], [διαδρομή καταλόγου προορισμού], follow_symlinks = True)
Για παράδειγμα, ο παρακάτω κώδικας χρησιμοποιεί shutil.copy () για να αντιγράψετε ένα αρχείο με όνομα copy.txt από έναν φάκελο που ονομάζεται ο φάκελός μου σε άλλο όνομα προορισμός. Στη συνέχεια μετονομάζει το αρχείο προορισμού ως newFile.txt:
εισαγωγή κλεισίματος
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (sourceFile, destinationFile, follow_symlinks = True)
Σημειώστε ότι μπορείτε να γράψετε τον κωδικό σας οποιοδήποτε πρόγραμμα επεξεργασίας κώδικα της επιλογής σας. Στη συνέχεια, μπορείτε να το εκτελέσετε χρησιμοποιώντας τη γραμμή εντολών.
Ωστόσο, μπορείτε επίσης να χρησιμοποιήσετε το προεπιλεγμένο περιβάλλον ανάπτυξης Python (IDLE) εάν δεν είστε εξοικειωμένοι με την εκτέλεση του Python μέσω της γραμμής εντολών.
Σχετιζομαι με: Εντολές γραμμής εντολών (CMD) που πρέπει να γνωρίζετε
ο shutil.copy Η μέθοδος δεν αντιγράφει τα μεταδεδομένα του αρχείου προέλευσης. Στην ουσία, το μηχάνημά σας βλέπει εντελώς το αρχείο προορισμού ως νέο και του δίνει νέα μεταδεδομένα.
Ωστόσο, για να αντιγράψετε τα μεταδεδομένα μαζί με το αρχικό αρχείο, χρησιμοποιήστε το shutil.copy2 μέθοδος:
εισαγωγή κλεισίματος
shutil.copy2 (sourceFile, destinationFile, follow_symlinks = True)
Η παραπάνω μέθοδος διατηρεί τα αρχικά μεταδεδομένα του παλιού αρχείου στο αρχείο προορισμού. Για παράδειγμα, το αρχείο προορισμού διατηρεί την ημερομηνία δημιουργίας του αρχείου προέλευσης, το μέγεθός του και άλλα χαρακτηριστικά.
ο follow_symlinks Το όρισμα είναι μια συμβολική δήλωση σύνδεσης που επιτρέπει σφιχτά ακολουθήστε ένα απόλυτο μονοπάτι. Επομένως, πρέπει να το συμπεριλάβετε εάν τα αρχεία προέλευσης και προορισμού βρίσκονται σε διαφορετικούς καταλόγους.
Αλλά εάν και τα δύο αρχεία βρίσκονται στον τρέχοντα κατάλογο εργασίας σας, δεν χρειάζεται να συμπεριλάβετε ένα follow_symlinks. Εάν το κάνετε, το Python δημιουργεί μια εξαίρεση σύνταξης.
Επομένως, εάν επικολλάτε το αρχείο προέλευσης στον τρέχοντα κατάλογο εργασίας σας, ο κώδικάς σας θα πρέπει να έχει την εξής μορφή:
εισαγωγή κλεισίματος
shutil.copy2 (sourceFile, destinationFile)
Εκτός από τη χρήση των παραπάνω μεθόδων κλεισίματος, μπορείτε επίσης να χρησιμοποιήσετε shutil.copyfile ή shutil.copyfileobj.
Χρησιμοποιώντας shutil.copyfileobj είναι λίγο διαφορετικό καθώς απαιτεί το ενσωματωμένο Άνοιξε λειτουργία. Στη συνέχεια, πρέπει να διαβάσετε και να γράψετε δυαδικά, συμπεριλαμβάνοντας το "rb" και "wb" επιχειρήματα.
Ας δούμε πώς το shutil.copyfileobj Η μέθοδος λειτουργεί χρησιμοποιώντας τους ίδιους καταλόγους που χρησιμοποιήσαμε προηγουμένως:
εισαγωγή κλεισίματος
sourceFilePath = άνοιγμα ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = άνοιγμα ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)
Σημειώστε ότι shutil.copyfileobj () δεν απαιτεί το follow_symlinks διαφωνία.
Ωστόσο, shutil.copyfile () λειτουργεί σχεδόν με τον ίδιο τρόπο .αντίγραφο και . αντίγραφο 2 κάνει. Διαφέρουν μόνο ασήμαντα στις εσωτερικές τους λειτουργίες.
Για να χρησιμοποιήσετε το shutil.copyfile () μέθοδος:
εισαγωγή κλεισίματος
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)
Πώς να αντιγράψετε αρχεία με τη λειτουργική μονάδα os
ο ΟΣ Η ενότητα χρησιμοποιεί δύο ενσωματωμένες μεθόδους για την αντιγραφή αρχείων. os.system () και os.popen () μεθόδους.
ο os.system () Η μέθοδος σας επιτρέπει να μιμηθείτε το περιβάλλον της γραμμής εντολών.
Ωστόσο, ένα μειονέκτημα των μεθόδων os είναι ότι αντιγράφουν μόνο αρχεία στον τρέχοντα κατάλογο εργασίας σας.
Για να χρησιμοποιήσετε το os.system () μέθοδος στα Windows:
εισαγωγή os
os.system ('copy source.txt destination.txt)
Μπορείτε επίσης να χρησιμοποιήσετε το ενσωματωμένο xcopy Εντολή τερματικού των Windows:
εισαγωγή os
os.system ('xcopy source.txt destination.txt)
Για να χρησιμοποιήσετε το σύστημα μέθοδο στο Linux, αντικαταστήστε αντίγραφο με cp:
εισαγωγή os
os.system ('cp source.txt destination.txt)
Τρόπος αντιγραφής αρχείων χρησιμοποιώντας τη μέθοδο os.popen
Για να χρησιμοποιήσετε αυτήν τη μέθοδο, αντικαταστήστε os.system () με os.popen ().
Στα Windows, χρησιμοποιήστε:
εισαγωγή os
os.popen ('copy source.txt destination.txt)
Όπως κάναμε με os.system (), αντικαταστήστε αντίγραφο με cp για να χρησιμοποιήσετε αυτήν τη μέθοδο στο Linux:
εισαγωγή os
os.popen ('cp source.txt destination.txt)
Πώς να αντιγράψετε αρχεία με την ενότητα υποεπεξεργασίας της Python
Εκτός από τις παραπάνω μεθόδους, μπορείτε επίσης να χρησιμοποιήσετε το υποεπεξεργασία () βιβλιοθήκη για αντιγραφή αρχείων στο Python:
εισαγωγή υποεπεξεργασίας ως sp
sp.call ("copy sourceFile destinationFile", shell = True)
Ωστόσο, στο Linux, χρησιμοποιήστε:
εισαγωγή υποεπεξεργασίας ως sp
sp.call ("cp sourceFile destinationFile", shell = True)
ο υποεπεξεργασία Η βιβλιοθήκη χρησιμοποιεί επίσης subprocess.check_out () μέθοδος. Λειτουργεί με τον ίδιο τρόπο subprocess.call () κάνει:
εισαγωγή υποεπεξεργασίας ως sp
sp.check_out ("copy sourceFile destinationFile", shell = True)
Στο Linux, αντικαταστήστε αντίγραφο με cp:
εισαγωγή υποεπεξεργασίας ως sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)
Ωστόσο, όπως οι μέθοδοι OS, οι μέθοδοι υποεπεξεργασίας λειτουργούν μόνο με αρχεία στον τρέχοντα κατάλογο εργασίας σας.
Σημείωση: Μπορείτε επίσης να αντιγράψετε αρχεία σε ένα φάκελο εάν βρίσκεται στον ίδιο κατάλογο εργασίας με το αρχείο προέλευσης. Το μόνο που χρειάζεται να κάνετε είναι να αντικαταστήσετε το όνομα αρχείου προορισμού με το όνομα του φακέλου προορισμού. Ωστόσο, βεβαιωθείτε ότι ο φάκελος προορισμού και το αρχείο προέλευσης βρίσκονται στον τρέχοντα κατάλογο εργασίας σας.
Πώς να αντιγράψετε αρχεία στο Python χωρίς να χρησιμοποιήσετε βιβλιοθήκες
Μπορείτε επίσης να αντιγράψετε αρχεία στο Python χωρίς να εξαρτάται από οποιαδήποτε βιβλιοθήκη. Όπως και η μέθοδος κλεισίματος, χρειάζεστε μόνο τις πλήρεις διαδρομές των καταλόγων προέλευσης και προορισμού.
Δείτε πώς μπορείτε να το επιτύχετε:
sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
με ανοιχτό (sourcePath, "rb") όπως διαβάζεται:
με ανοιχτό (destinationPath, "wb") ως myfile:
myfile.write (read.read ())
Προς την Κάντε τον κωδικό επαναχρησιμοποιήσιμο, μπορείτε να το τροποποιήσετε σε μια συνάρτηση:
def copyFile (πηγή = Καμία, προορισμός = Καμία):
αν όχι (πηγή και προορισμός) == Κανένα:
με ανοιχτό (πηγή, "rb") όπως διαβάζεται:
με ανοιχτό (προορισμός, "wb") ως myfile:
myfile.write (read.read ())
αλλού:
εκτύπωση ("Εισαγάγετε τις διαδρομές προέλευσης και προορισμού")
copyFile (sourcePath, destinationPath)
Αυτό είναι. Μόλις δημιουργήσατε ένα επαναχρησιμοποιήσιμο φωτοαντιγραφικό αρχείο με το Python χωρίς να χρησιμοποιήσετε καμία βιβλιοθήκη.
Συνεχίστε την αυτοματοποίηση εργασιών με το Python
Εκτός από το ότι σας βοηθά να παραμείνετε εστιασμένοι στον κώδικά σας κατά τη δημιουργία έργων, η αντιγραφή αρχείων με το Python σας επιτρέπει να κατανοήσετε καλύτερα τη διαχείριση αρχείων με το Python. Ωστόσο, το να παίζεις με τα καθήκοντα του Python είναι ένας τρόπος να βελτιώσεις την ικανότητά σου στο Python, ειδικά αν είσαι αρχάριος.
Για παράδειγμα, μπορείτε να αλλάξετε την ημερομηνία και την ώρα στον υπολογιστή σας με τη λειτουργική μονάδα OS. Μπορείτε ακόμη και να γράψετε προσαρμοσμένες εντολές bash με το Python εάν θέλετε.
Θέλετε να φτιάξετε τα δικά σας προγράμματα γραμμής εντολών Python αλλά το θεωρείτε πολύ δύσκολο; Χρησιμοποιήστε το Click, ένα χρήσιμο εργαλείο Python για τον εξορθολογισμό του κώδικα σας.
- Προγραμματισμός
- Πύθων
Το Idowu είναι παθιασμένο με οτιδήποτε έξυπνη τεχνολογία και παραγωγικότητα. Στον ελεύθερο χρόνο του, παίζει με την κωδικοποίηση και αλλάζει στη σκακιέρα όταν βαριέται, αλλά αγαπά επίσης να ξεφεύγει από τη ρουτίνα κάποτε. Το πάθος του για να δείξει στους ανθρώπους το δρόμο γύρω από τη σύγχρονη τεχνολογία τον παρακινεί να γράφει περισσότερα.
Εγγραφείτε στο Newsletter μας
Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Ένα ακόμη βήμα…!
Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.