Οι ακόλουθες ενότητες εξηγούν πώς να δημιουργήσετε και να αποθηκεύσετε ένα νέο αρχείο στην Python χρησιμοποιώντας έναν νέο κατάλογο (φάκελο) ως προορισμό.
- Σφάλμα κατά τον προσδιορισμό ανύπαρκτου καταλόγου με την open()(
FileNotFoundError
) os.makedirs()
Δημιουργήστε έναν κατάλογο- Παράδειγμα κώδικα για τη δημιουργία ενός νέου αρχείου με προορισμό
Ακολουθεί ένα παράδειγμα αρχείου κειμένου.
Κατά την αποθήκευση εικόνων, εξαρτάται από τη βιβλιοθήκη αν μπορείτε να καθορίσετε μια διαδρομή που περιλαμβάνει έναν ανύπαρκτο κατάλογο (ή αν θα δημιουργήσει αυτόματα έναν αν δεν υπάρχει).FileNotFoundError
Αν εμφανιστεί αυτό το σφάλμα, μπορείτε να δημιουργήσετε έναν νέο κατάλογο με την os.madeirs() πριν από την εκτέλεση της συνάρτησης για αποθήκευση, όπως στο ακόλουθο παράδειγμα.
Σφάλμα κατά τον προσδιορισμό ανύπαρκτου καταλόγου με την open()(FileNotFoundError)
Κατά τη δημιουργία ενός νέου αρχείου με την ενσωματωμένη συνάρτηση open(), εμφανίζεται σφάλμα εάν ως πρώτο όρισμα ως προορισμός καθοριστεί μια διαδρομή που περιέχει έναν νέο κατάλογο (έναν κατάλογο που δεν υπάρχει).(FileNotFoundError
)
open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError
Το πρώτο όρισμα της open() μπορεί να είναι μια απόλυτη διαδρομή ή μια διαδρομή σχετική με τον τρέχοντα κατάλογο.
Για τη βασική χρήση της open(), όπως η δημιουργία ενός νέου αρχείου σε έναν υπάρχοντα κατάλογο ή η αντικατάσταση ή προσθήκη σε ένα υπάρχον αρχείο, ανατρέξτε στο ακόλουθο άρθρο.
Δημιουργήστε έναν κατάλογο(os.makedirs())
Όταν δημιουργείτε ένα νέο αρχείο σε έναν ανύπαρκτο κατάλογο, είναι απαραίτητο να δημιουργήσετε τον κατάλογο πριν από την open().
Αν χρησιμοποιείτε την Python 3.2 ή νεότερη έκδοση, είναι βολικό να χρησιμοποιήσετε την os.makedirs() με το όρισμα exist_ok=True. Ακόμη και αν ο κατάλογος-στόχος υπάρχει ήδη, δεν θα εμφανιστεί σφάλμα και ο κατάλογος μπορεί να δημιουργηθεί αμέσως.
import os
os.makedirs(new_dir_path, exist_ok=True)
Αν έχετε μια παλαιότερη έκδοση της Python και δεν έχετε το όρισμα exist_ok στην os.makedirs(), θα λάβετε σφάλμα αν καθορίσετε τη διαδρομή προς έναν κατάλογο που υπάρχει, οπότε χρησιμοποιήστε την os.path.exists() για να ελέγξετε πρώτα την ύπαρξη του καταλόγου.
if not os.path.exists(new_dir_path):
os.makedirs(new_dir_path)
Δείτε το ακόλουθο άρθρο για λεπτομέρειες.
Παράδειγμα κώδικα για τη δημιουργία ενός νέου αρχείου με προορισμό
Ακολουθεί παράδειγμα κώδικα μιας συνάρτησης που δημιουργεί και αποθηκεύει ένα νέο αρχείο καθορίζοντας τον κατάλογο προορισμού.
Το πρώτο όρισμα dir_path είναι η διαδρομή του καταλόγου προορισμού, το δεύτερο όρισμα filename είναι το όνομα του νέου αρχείου που πρόκειται να δημιουργηθεί και το τρίτο όρισμα file_content είναι το περιεχόμενο που πρόκειται να εγγραφεί, καθένα από τα οποία καθορίζεται ως συμβολοσειρά.
Εάν ο καθορισμένος κατάλογος δεν υπάρχει, δημιουργήστε έναν νέο.
import os
def save_file_at_dir(dir_path, filename, file_content, mode='w'):
os.makedirs(dir_path, exist_ok=True)
with open(os.path.join(dir_path, filename), mode) as f:
f.write(file_content)
Χρησιμοποιήστε ως εξής.
save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')
Στην περίπτωση αυτή, το αρχείο new_file.txt με περιεχόμενο «νέο κείμενο» θα δημιουργηθεί στο new_dir\sub_dir. Με άλλα λόγια, θα δημιουργηθεί το ακόλουθο αρχείο.new_dir/sub_dir/new_file.txt
Συνένωση ονομάτων καταλόγων και αρχείων με την os.path.join().
Επίσης, ο τρόπος λειτουργίας της open() καθορίζεται ως όρισμα. Για αρχεία κειμένου, το προεπιλεγμένο 'w' είναι μια χαρά, αλλά αν θέλετε να δημιουργήσετε ένα δυαδικό αρχείο, ορίστε mode='wb'.