Πώς μπορώ να λάβω την πλήρη διαδρομή του τρέχοντος καταλόγου του αρχείου;

Θέλω να λάβω τη διαδρομή του τρέχοντος αρχείου'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 που βρίσκεται σε ένα αρχείο.

Σχόλια (17)
import os
print os.path.dirname(__file__)
Σχόλια (3)

Μπορείτε να χρησιμοποιήσετε τη βιβλιοθήκη os και os.path εύκολα ως εξής

import os
os.chdir(os.path.dirname(os.getcwd()))

Το os.path.dirname επιστρέφει τον ανώτερο κατάλογο από τον τρέχοντα. Μας επιτρέπει να αλλάξουμε σε ένα ανώτερο επίπεδο χωρίς να περάσουμε κάποιο όρισμα αρχείου και χωρίς να γνωρίζουμε την απόλυτη διαδρομή.

Σχόλια (1)