logo

Python-ohjelma tiedostonimen saamiseksi tiedostopolusta

Tässä artikkelissa tarkastelemme ohjelmaa saadaksemme tiedostonimen annetusta tiedostopolusta Python-ohjelmointikielessä. Joskus automatisoinnin aikana saatamme tarvita tiedostonimen, joka on purettu tiedostopolusta.

Parempi tietää:

Tapa 1: Python OS-moduuli

Esimerkki 1: Hae tiedostonimi polusta ilman split()

Pythonin jakaa() funktio jakaa annetun tekstin merkkijonoluetteloksi määritetyn erottimen avulla ja palauttaa luettelon merkkijonoista, jotka on jaettu annetulla erottimella.



Python 3




import> os> path>=> 'D:homeRiot GamesVALORANTliveVALORANT.exe'> print>(os.path.basename(path).split(>'/'>)[>->1>])>

>

>

Lähtö:

VALORANT.exe>

Esimerkki 2: Hae tiedostonimi tiedostopolusta käyttämällä os.path.basename

Annetun polun kantanimi saadaan käyttämällä sisäänrakennettua Python-funktiota os.path.basename(). Funktio path.basename() hyväksyy polun argumentin ja palauttaa polun nimen polun perusnimen.

Python 3




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)>

>

>

Lähtö:

test.txt>

Esimerkki 3: Hae tiedostonimi tiedostopolusta OS:n avulla. jaettu teksti

Tämä menetelmä päätyy tiedostoon ja se on laajennus, mutta entä jos tarvitsemme vain tiedostonimen ilman laajennusta tai vain laajennuksia. Tässä jaettu teksti os-moduulin toiminto tulee kuvaan. Tämä menetelmä palauttaa joukon merkkijonoja, jotka sisältävät tiedostonimen ja tekstin, ja voimme käyttää niitä indeksoinnin avulla.

Esimerkki:

Python 3


milloin q1 loppuu



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>])>

>

>

Lähtö:

('test', '.txt') test.txt>

Tapa 2: Hanki tiedostonimi tiedostopolusta käyttämällä Pathlib

Python Pathlib -paketti tarjoaa useita luokkia, jotka kuvaavat tiedostojärjestelmän polkuja monille käyttöjärjestelmille sopivalla semantiikalla. Pythonin vakioapumoduulit sisältävät tämän moduulin. Siitä huolimatta varsi on yksi apuattribuuteista, joka mahdollistaa tiedostonimen otteet linkistä ilman päätettä, jos haluamme tiedostolle laajennuksen voimme käyttää nimimääritteitä

Esimerkki:

Python 3




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)>

>

>

Lähtö:

test test.txt>

Tapa 3: Hanki tiedostonimi tiedostopolusta käyttämällä Säännölliset lausekkeet

Voimme käyttää säännöllistä lauseketta sovittaaksemme tiedoston nimen tiettyyn malliin.

 Pattern -  [w]+?(?=.)>

Tämä kuvio on jaettu 3 kuvioon

  • [w] vastaa joukon sisällä olevia sanoja
  • +? vastaa merkkijonoa, jos se on olemassa vain kerran aiemmin ? avainsana
  • (?=) vastaa kaikkia merkkejä ilman rivinvaihtoa ja muista lopettaa kohtaan.

Esimerkki:

Python 3




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())>

>

>

Lähtö:

test>

Tapa 4: Käytä sisäänrakennettua Python-funktiota split() jakaaksesi tiedostopolun yksittäisten komponenttien luetteloon ja käytä sitten rsplit()-menetelmää:

voit käyttää sisäänrakennettua Python-funktiota split() jakaaksesi tiedostopolun yksittäisten komponenttien luetteloon ja sitten käyttää rsplit()-menetelmää jakaaksesi viimeisen komponentin (jonka pitäisi olla tiedoston nimi ja pääte) luetteloksi joka sisältää tiedostonimen ja tunnisteen. Voit sitten käyttää indeksointia poimiaksesi tiedoston nimen tästä luettelosta.

Tässä on esimerkki siitä, kuinka tämä voidaan tehdä:

Python 3


bourne taas shell



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'>

>

>

Tulos: testi

Tämä lähestymistapa käyttää ensin split()-funktiota tiedostopolun jakamiseen yksittäisten komponenttien luetteloksi, jotka erotetaan '/'-merkillä. Rsplit()-menetelmää käytetään sitten jakamaan viimeinen komponentti (jonka tulee olla tiedoston nimi ja tunniste) luetteloksi, joka sisältää tiedostonimen ja tunnisteen, käyttämällä erottimena '.'-merkkiä. Tiedostonimi puretaan sitten tästä luettelosta indeksoinnin avulla. Tämä lähestymistapa toimii kaikilla tiedostopoluilla ja -tunnisteilla, kunhan tiedostopolku on muodossa, joka voidaan jäsentää split()- ja rsplit()-menetelmillä.