Θέλω να λάβω τη διαδρομή του τρέχοντος αρχείου's καταλόγου. Δοκίμασα:
>>> os.path.abspath(__file__)
'C:\\python27\\test.py'
Αλλά πώς μπορώ να ανακτήσω τη διαδρομή του καταλόγου's;
Για παράδειγμα:
'C:\\python27\\'
Αν εννοείτε τον κατάλογο του σεναρίου που εκτελείται:
import os
os.path.dirname(os.path.abspath(__file__))
Αν εννοείτε τον τρέχοντα κατάλογο εργασίας:
import os
os.getcwd()
Σημειώστε ότι πριν και μετά το file
υπάρχουν δύο υπογράμμιση, όχι μόνο μία.
Σημειώστε επίσης ότι αν εκτελείτε διαδραστικά ή έχετε φορτώσει κώδικα από κάτι άλλο εκτός από αρχείο (π.χ.: μια βάση δεδομένων ή έναν διαδικτυακό πόρο), το __file__
μπορεί να μην έχει οριστεί, καθώς δεν υπάρχει η έννοια του "τρέχοντος αρχείου". Η παραπάνω απάντηση υποθέτει το πιο συνηθισμένο σενάριο εκτέλεσης ενός σεναρίου python που βρίσκεται σε ένα αρχείο.
Μπορείτε να χρησιμοποιήσετε τη βιβλιοθήκη os
και os.path
εύκολα ως εξής
import os
os.chdir(os.path.dirname(os.getcwd()))
Το os.path.dirname
επιστρέφει τον ανώτερο κατάλογο από τον τρέχοντα.
Μας επιτρέπει να αλλάξουμε σε ένα ανώτερο επίπεδο χωρίς να περάσουμε κάποιο όρισμα αρχείου και χωρίς να γνωρίζουμε την απόλυτη διαδρομή.