Πώς να λάβετε το όνομα αρχείου χωρίς την επέκταση από μια διαδρομή στην Python;
Λήψη του ονόματος του αρχείου χωρίς την επέκταση:
import os
print(os.path.splitext("/path/to/some/file.txt")[0])
Εκτυπώσεις:
/path/to/some/file
Σημαντική σημείωση: Εάν το όνομα αρχείου έχει πολλές τελείες, αφαιρείται μόνο η επέκταση μετά την τελευταία. Για παράδειγμα:
import os
print(os.path.splitext("/path/to/some/file.txt.zip.asc")[0])
Εκτυπώνει:
/path/to/some/file.txt.zip
Δείτε άλλες απαντήσεις παρακάτω, αν πρέπει να χειριστείτε αυτή την περίπτωση.
Μπορείτε να φτιάξετε το δικό σας με:
>>> import os
>>> base=os.path.basename('/root/dir/sub/file.ext')
>>> base
'file.ext'
>>> os.path.splitext(base)
('file', '.ext')
>>> os.path.splitext(base)[0]
'file'
Σημαντική σημείωση: Αν υπάρχουν περισσότερα από ένα .
στο όνομα του αρχείου, αφαιρείται μόνο το τελευταίο. Για παράδειγμα, το τελευταίο είναι το μόνο που αφαιρείται:
/root/dir/sub/file.ext.zip -> file.ext
/root/dir/sub/file.ext.tar.gz -> file.ext.tar
Ανατρέξτε παρακάτω για άλλες απαντήσεις που το αντιμετωπίζουν αυτό.
Αλλά ακόμη και όταν κάνω εισαγωγή os, δεν μπορώ να το καλέσω path.basename. Είναι δυνατόν να το καλέσω απευθείας ως basename;
import os
, και στη συνέχεια να χρησιμοποιήσω os.path.basename
Η εισαγωγή
του os
δεν σημαίνει ότι μπορείτε να χρησιμοποιήσετε το os.foo
χωρίς αναφορά στο os
.