Python-program for at få filnavnet fra filstien
I denne artikel vil vi se på programmet for at få filnavnet fra den givne filsti i Python-programmeringssproget. Nogle gange under automatisering kan vi have brug for filnavnet ekstraheret fra filstien.
Bedre at have viden om:
- Python OS-modul
- Python-stimodul
- Regelmæssige udtryk
- Indbygget rsplit()
Metode 1: Python OS-modul
Eksempel 1: Hent filnavnet fra stien uden filtypenavnet split()
Python's dele() funktionen opdeler den givne tekst i en liste over strenge ved hjælp af den definerede separator og returnerer en liste over strenge, der er blevet divideret med den medfølgende separator.
Python3
import> os> path> => 'D:homeRiot GamesVALORANTliveVALORANT.exe'> print> (os.path.basename(path).split(> '/'> )[> -> 1> ])> |
Produktion:
VALORANT.exe
Eksempel 2: Hent filnavnet fra filstien ved hjælp af os.path.basename
Basisnavnet i den givne sti kan fås ved hjælp af den indbyggede Python-funktion os.path.basename(). Funktionen path.basename() accepterer et sti-argument og returnerer basisnavnet på stinavnstien.
Python3
import> os> file_path> => 'C:/Users/test.txt'> # file path> # using basename function from os> # module to print file name> file_name> => os.path.basename(file_path)> print> (file_name)> |
Produktion:
test.txt
Eksempel 3: Hent filnavnet fra filstien ved hjælp af os. splittekst
Denne metode ender med en fil, og det er en udvidelse, men hvad nu hvis vi kun har brug for filnavnet uden en udvidelse eller kun udvidelser. Her splittekst funktion i os-modulet kommer ind i billedet. Denne metode returnerer en række strenge, der indeholder filnavn og tekst, og vi kan få adgang til dem ved hjælp af indeksering.
Eksempel:
Python3
import> os> file_path> => 'C:/Users/test.txt'> file_name> => os.path.basename(file_path)> file> => os.path.splitext(file_name)> print> (> file> )> # returns tuple of string> print> (> file> [> 0> ]> +> file> [> 1> ])> |
Produktion:
('test', '.txt') test.txt Metode 2: Hent filnavnet fra filstien ved hjælp af Pathlib
Python Pathlib-pakken tilbyder en række klasser, der beskriver filsystemstier med semantik, der passer til mange operativsystemer. Standardværktøjsmodulerne til Python inkluderer dette modul. Selvom stilk er en af hjælpeattributterne, der muliggør udtræk af filnavnet fra linket uden udvidelse, hvis vi ønsker en udvidelse med filen, kan vi bruge navneattributter
Eksempel:
Python3
from> pathlib> import> Path> file_path> => 'C:/Users/test.txt'> # stem attribute extracts the file> # name> print> (Path(file_path).stem)> # name attribute returns full name> # of the file> print> (Path(file_path).name)> |
Produktion:
test test.txt
Metode 3: Hent filnavnet fra filstien ved hjælp af Regelmæssige udtryk
Vi kan bruge et regulært udtryk til at matche filnavnet med det specifikke mønster.
Pattern - [w]+?(?=.)
Dette mønster er opdelt i 3 mønstre
- [w] matcher ordene i sættet
- +? matcher strengen, hvis den kun er til stede én gang før ? søgeord
- (?=) matcher alle tegn uden ny linje og sørg for at stoppe kl.
Eksempel:
Python3
import> re> file_path> => 'C:/Users/test.txt'> pattern> => '[w-]+?(?=.)'> # searching the pattern> a> => re.search(pattern, file_path)> # printing the match> print> (a.group())> |
Produktion:
test
Metode 4: Brug den indbyggede Python-funktion split() til at opdele filstien i en liste over individuelle komponenter, og brug derefter rsplit()-metoden:
du kan bruge den indbyggede Python-funktion split() til at opdele filstien i en liste over individuelle komponenter, og derefter bruge rsplit()-metoden til at opdele den sidste komponent (som skal være filnavnet og filtypenavnet) i en liste indeholdende filnavn og filtypenavn. Du kan derefter bruge indeksering til at udtrække filnavnet fra denne liste.
Her er et eksempel på, hvordan dette kan gøres:
Python3
def> get_file_name(file_path):> > file_path_components> => file_path.split(> '/'> )> > file_name_and_extension> => file_path_components[> -> 1> ].rsplit(> '.'> ,> 1> )> > return> file_name_and_extension[> 0> ]> # Example usage> file_path> => 'C:/Users/test.txt'> result> => get_file_name(file_path)> print> (result)> # Output: 'test'> |
Output: test
Denne tilgang bruger først split()-funktionen til at opdele filstien i en liste over individuelle komponenter, adskilt af tegnet '/'. Metoden rsplit() bruges derefter til at opdele den sidste komponent (som skal være filnavnet og filtypenavnet) i en liste, der indeholder filnavnet og filtypenavnet, ved at bruge tegnet '.' som separator. Filnavnet udtrækkes derefter fra denne liste ved hjælp af indeksering. Denne tilgang vil fungere for enhver filsti og filtypenavn, så længe filstien er i et format, der kan parses ved hjælp af split() og rsplit() metoderne.