In dit artikel zullen we kijken naar het programma om de bestandsnaam uit het opgegeven bestandspad in de programmeertaal Python te halen. Soms hebben we tijdens de automatisering mogelijk de bestandsnaam nodig die uit het bestandspad wordt geëxtraheerd.
Het is beter om kennis te hebben van:
- Python OS-module
- Python-padmodule
- Normale uitdrukkingen
- Ingebouwde rsplit()
Methode 1: Python OS-module
Voorbeeld 1: Haal de bestandsnaam op uit het pad zonder de extensie split()
Python's splitsen() De functie verdeelt de gegeven tekst in een lijst met tekenreeksen met behulp van het gedefinieerde scheidingsteken en retourneert een lijst met tekenreeksen die zijn gedeeld door het opgegeven scheidingsteken.
Python3
import> os> path>=> 'D:homeRiot GamesVALORANTliveVALORANT.exe'> print>(os.path.basename(path).split(>'/'>)[>->1>])> |
>
>
Uitgang:
VALORANT.exe>
Voorbeeld 2: Haal de bestandsnaam op uit het bestandspad met behulp van os.path.basename
De basisnaam in het opgegeven pad kan worden verkregen met behulp van de ingebouwde Python-functie os.path.basename(). De functie path.basename() accepteert een padargument en retourneert de basisnaam van het padnaampad.
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)> |
>
>
Uitgang:
test.txt>
Voorbeeld 3: Haal de bestandsnaam op uit het bestandspad met behulp van os. gesplitste
Deze methode zal eindigen met een bestand en het is een extensie, maar wat als we alleen de bestandsnaam nodig hebben zonder extensie of alleen extensies. Hier gesplitste functie in de os-module in beeld komt. Deze methode retourneert een tupel tekenreeksen die de bestandsnaam en tekst bevatten en we hebben er toegang toe met behulp van indexering.
Voorbeeld:
Python3
c# bevat tekenreeks
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>])> |
>
>
Uitgang:
('test', '.txt') test.txt> Methode 2: Haal de bestandsnaam op uit het bestandspad met behulp van Padlib
Het Python Pathlib-pakket biedt een aantal klassen die bestandssysteempaden beschrijven met een semantiek die geschikt is voor veel besturingssystemen. De standaard hulpprogrammamodules voor Python bevatten deze module. Hoewel stang is een van de hulpprogramma-attributen waarmee extracties van de bestandsnaam uit de link zonder extensie mogelijk zijn. Als we een extensie met het bestand willen, kunnen we naamattributen gebruiken
Voorbeeld:
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)> |
>
>
Uitgang:
test test.txt>
Methode 3: Haal de bestandsnaam op uit het bestandspad met behulp van Normale uitdrukkingen
We kunnen een reguliere expressie gebruiken om de bestandsnaam te matchen met het specifieke patroon.
Pattern - [w]+?(?=.)>
Dit patroon is verdeeld in 3 patronen
- [w] komt overeen met de woorden in de set
- +? komt overeen met de tekenreeks als deze slechts één keer eerder aanwezig is ? trefwoord
- (?=) komt overeen met alle tekens zonder nieuwe regel en zorg ervoor dat u stopt bij.

Voorbeeld:
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())> |
>
>
superscript in illustrator
Uitgang:
test>
Methode 4: Gebruik de ingebouwde Python-functie split() om het bestandspad op te splitsen in een lijst met afzonderlijke componenten, en gebruik vervolgens de rsplit()-methode:
je kunt de ingebouwde Python-functie split() gebruiken om het bestandspad op te splitsen in een lijst met individuele componenten, en vervolgens de rsplit()-methode gebruiken om de laatste component (die de bestandsnaam en extensie zou moeten zijn) in een lijst te splitsen met daarin de bestandsnaam en extensie. U kunt vervolgens indexering gebruiken om de bestandsnaam uit deze lijst te extraheren.
Hier is een voorbeeld van hoe dit kan worden gedaan:
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'> |
>
>
Uitgang: testen
Deze aanpak gebruikt eerst de functie split() om het bestandspad op te splitsen in een lijst met afzonderlijke componenten, gescheiden door het teken ‘/’. De methode rsplit() wordt vervolgens gebruikt om de laatste component (die de bestandsnaam en extensie zou moeten zijn) te splitsen in een lijst met de bestandsnaam en extensie, waarbij het teken ‘.’ als scheidingsteken wordt gebruikt. De bestandsnaam wordt vervolgens via indexering uit deze lijst geëxtraheerd. Deze aanpak werkt voor elk bestandspad en elke extensie, zolang het bestandspad een indeling heeft die kan worden geparseerd met behulp van de methoden split() en rsplit().