Python obtém o nome do arquivo sem extensão do caminho

Muhammad Waiz Khan 10 outubro 2023
  1. Obtenha o nome do arquivo sem extensão do caminho usando o método pathlib.path().stem em Python
  2. Obtenha o nome do arquivo sem extensão do caminho usando os métodos os.path.splitext() e string.split() em Python
  3. Obtenha o nome do arquivo do caminho usando os métodos os.path.basename() e os.path.splitext() em Python
Python obtém o nome do arquivo sem extensão do caminho

Este tutorial demonstrará vários métodos para obter o nome do arquivo sem extensão do caminho do arquivo em Python. Suponha que o objetivo seja obter o nome dos arquivos da lista de caminhos de arquivo disponíveis na forma de uma string, como no caminho Desktop/folder/myfile.txt, obtemos apenas o nome de arquivo myfile sem .txt extensão.

Obtenha o nome do arquivo sem extensão do caminho usando o método pathlib.path().stem em Python

O método path().stem pega o caminho do arquivo como entrada e retorna o nome do arquivo extraindo-o do caminho do arquivo. Por exemplo, a partir do caminho Desktop/folder/myfile.txt, ele retornará myfile sem a extensão .txt.

O exemplo de código abaixo demonstra como usar path().stem para obter o nome do arquivo sem a extensão do arquivo no caminho do arquivo:

from pathlib import Path

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

Resultado:

myfile

Obtenha o nome do arquivo sem extensão do caminho usando os métodos os.path.splitext() e string.split() em Python

O método path.splitext() do módulo os pega o caminho do arquivo como entrada de string e retorna o caminho e a extensão do arquivo como saída.

Como queremos obter o nome do arquivo do caminho do arquivo, podemos primeiro remover a extensão do arquivo do caminho do arquivo usando o método os.path.splitext(). O primeiro elemento do resultado da divisão é o caminho do arquivo sem extensão. Este resultado é dividido posteriormente usando / como separador. O último elemento será o nome do arquivo sem extensão. O exemplo de código abaixo demonstra como obter o nome do arquivo sem extensão do caminho do arquivo usando os métodos 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)

Resultado:

test

Obtenha o nome do arquivo do caminho usando os métodos os.path.basename() e os.path.splitext() em Python

Em Python, o método path.basename() do módulo os pega o caminho do arquivo como entrada e retorna o nome base extraído do caminho do arquivo. Por exemplo, o nome de base de Desktop/folder/myfile.txt é myfile.txt.

Como queremos obter o nome do arquivo a partir do caminho do arquivo, o nome de base pode ser extraído usando o método path.basename() e o nome do arquivo usando path.splitext(). O exemplo de código abaixo demonstra como obter o nome do arquivo do caminho do arquivo usando os métodos 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)

Resultado:

myfile
Aviso
Caso o arquivo tenha um nome como myfile.tar.gz, todos os métodos explicados acima retornarão myfile.tar como o nome do arquivo.

Suponha que precisamos obter o nome do arquivo sem a parte após . como myfile.tar em vez de myfile.tar do caminho Desktop/folder/myfile.tar.gz, o método string.index() pode ser usado para extrair apenas myfile de myfile.tar. Mas a desvantagem desse método é se o . faz parte do nome do arquivo como my.file.tar.gz, ele retornará my como o nome do arquivo.

O exemplo de código abaixo como podemos usar string.index() para remover .tar da saída myfile.tar dos métodos explicados acima:

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)

Resultado:

myfile
my

Artigo relacionado - Python File