Python Ottieni nome file senza estensione dal percorso

Muhammad Waiz Khan 30 gennaio 2023
  1. Ottieni il nome del file senza estensione dal percorso usando il metodo pathlib.path().stem in Python
  2. Ottieni il nome del file senza estensione dal percorso usando i metodi os.path.splitext() e string.split() in Python
  3. Ottieni il nome del file dal percorso usando i metodi os.path.basename() e os.path.splitext() in Python
Python Ottieni nome file senza estensione dal percorso

Questo tutorial mostrerà vari metodi per ottenere il nome del file senza estensione dal percorso del file in Python. Supponiamo che l’obiettivo sia quello di ottenere il nome dei file dall’lista dei percorsi dei file disponibili sotto forma di una stringa, come dal percorso Desktop / cartella / miofile.txt, otteniamo solo il nome del file miofile senza .txt Estensione.

Ottieni il nome del file senza estensione dal percorso usando il metodo pathlib.path().stem in Python

Il metodo path().stem prende il percorso del file come input e restituisce il nome del file estraendolo dal percorso del file. Ad esempio, dal percorso Desktop/folder/myfile.txt, restituirà myfile senza l’estensione .txt.

L’esempio di codice seguente mostra come utilizzare path().stem per ottenere il nome del file senza l’estensione del file dal percorso del file:

from pathlib import Path

file_path = "Desktop/folder/myfile.txt"
file_name = Path(file_path).stem
print(file_name)

Produzione:

myfile

Ottieni il nome del file senza estensione dal percorso usando i metodi os.path.splitext() e string.split() in Python

Il metodo path.splitext() del modulo os prende il percorso del file come stringa di input e restituisce il percorso e l’estensione del file come output.

Poiché vogliamo ottenere il nome del file dal percorso del file, possiamo prima rimuovere l’estensione del file dal percorso del file utilizzando il metodo os.path.splitext(). Il primo elemento del risultato della divisione è il percorso del file senza estensione. Questo risultato viene ulteriormente suddiviso utilizzando / come separatore. L’ultimo elemento sarà il nome del file senza estensione. L’esempio di codice seguente mostra come ottenere il nome del file senza estensione dal percorso del file utilizzando i metodi path.splitext() e string.split().

import os

file_path = "Desktop/folder/myfile.txt"

file_path = os.path.splitext(file_path)[0]
file_name = file_path.split("/")[-1]
print(file_name)

Produzione:

test

Ottieni il nome del file dal percorso usando i metodi os.path.basename() e os.path.splitext() in Python

In Python il metodo path.basename() del modulo os prende il percorso del file come input e restituisce il nome di base estratto dal percorso del file. Ad esempio, il nome di base di Desktop/folder/myfile.txt è myfile.txt.

Dato che vogliamo ottenere il nome del file dal percorso del file, il nome di base può essere estratto usando il metodo path.basename() e il nome del file usando path.splitext(). L’esempio di codice seguente mostra come ottenere il nome del file dal percorso del file utilizzando i metodi path.basename() e path.splitext().

import os

file_path = "Desktop/folder/myfile.txt"

basename = os.path.basename(file_path)
file_name = os.path.splitext(basename)[0]
print(file_name)

Produzione:

myfile
Attenzione
Nel caso in cui il file abbia un nome come myfile.tar.gz, tutti i metodi spiegati sopra restituiranno myfile.tar come nome del file.

Supponiamo di dover ottenere il nome del file senza la parte dopo . come myfile invece di myfile.tar dal percorso Desktop/folder/myfile.txt, il metodo string.index() può essere utilizzato per estrarre solo myfile da myfile.tar . Ma lo svantaggio di questo metodo è se il . fa parte del nome del file come my.file.tar.gz, restituirà my come nome del file.

L’esempio di codice sotto come possiamo usare string.index() per rimuovere .tar dall’output myfile.tar dei metodi spiegati sopra:

file_name = "myfile.tar"
index = file_name.index(".")
file_name = file_name[:index]
print(file_name)

file_name = "my.file.tar"
index = file_name.index(".")
file_name = file_name[:index]
print(file_name)

Produzione:

myfile
my

Articolo correlato - Python File