Os Path Module is een submodule van de OS-module in Python die wordt gebruikt voor algemene manipulatie van padnamen. In dit artikel leren we over os.path.join() en hoe we veilig omgaan met bestandspaden Python-besturingssysteem .
Python os.path.join() Methodesyntaxis
Syntaxis: os.path.join(pad, *paden)
Parameter:
- pad : Een padachtig object dat een bestandssysteempad vertegenwoordigt.
- *pad : Een padachtig object dat een bestandssysteempad vertegenwoordigt. Het vertegenwoordigt de padcomponenten die moeten worden samengevoegd. Een padachtig object is een string- of bytesobject dat een pad vertegenwoordigt.
- Opmerking: De speciale syntaxis *argumenten (hier *paden) in functiedefinities in Python wordt gebruikt om een variabel aantal argumenten aan een functie door te geven.
Retourtype: Deze methode retourneert een tekenreeks die de aaneengeschakelde padcomponenten vertegenwoordigt.
os.path.join() methode in Python
De os.pad.join() Methode in Python voegt op intelligente wijze een of meer padcomponenten samen. Deze methode voegt verschillende padcomponenten samen met precies één mapscheidingsteken (‘/’) na elk niet-lege deel, behalve de laatste padcomponent. Als de laatste padcomponent die moet worden samengevoegd leeg is, wordt aan het einde een mapscheidingsteken (‘/’) geplaatst.
Als een padcomponent een absoluut pad vertegenwoordigt, worden alle eerder samengevoegde componenten verwijderd en wordt de verbinding voortgezet vanaf de absolute padcomponent.
os.path.join() Functievoorbeelden en gebruiksscenario's
Hieronder vindt u enkele voorbeelden en gebruiksscenario's waarmee we bestandspaden kunnen samenvoegen en bestandspaden veilig kunnen afhandelen Python JIJ.
Padcomponenten aaneenschakelen
In dit voorbeeld wordt de methode `os.path.join()` gebruikt om padcomponenten aan elkaar te koppelen, waardoor op effectieve wijze geldige paden worden geconstrueerd. Het zorgt voor platformonafhankelijke compatibiliteit door de componenten op de juiste manier samen te voegen.
Python3
import> os> # Path> path>=> '/home'> # Join various path components> print>(os.path.join(path,>'User/Desktop'>,>'file.txt'>))> # Path> path>=> 'User/Documents'> # Join various path components> print>(os.path.join(path,>'/home'>,>'file.txt'>))> # Path> path>=> '/User'> # Join various path components> print>(os.path.join(path,>'Downloads'>,>'file.txt'>,>'/home'>))> |
>
singleton ontwerppatroon java
>Uitvoer
/home/User/Desktop/file.txt /home/file.txt /home>
Bestanden lezen en schrijven
In dit voorbeeld is deos.path.join()>De methode wordt gebruikt om een compleet bestandspad te vormen door de basismap en de bestandsnaam samen te voegen. Het geconstrueerde pad wordt vervolgens gebruikt om de inhoud van het genoemde bestand te lezenexample.txt>.
voorbeeld.txt
techcodeview.com>
Python3
import> os> # Base directory and filename> base_dir>=> '/home/user'> filename>=> 'example.txt'> # Construct the full path> full_path>=> os.path.join(base_dir, filename)> # Reading and writing files using the full path> with>open>(full_path,>'r'>) as>file>:> >content>=> file>.read()> >print>(content)> |
>
>
Uitgang:
techcodeview.com>
Bestanden in een map weergeven
In dit voorbeeld wordt de methode `os.path.join()` gebruikt om het volledige pad voor elk bestand in de huidige werkmap te genereren. De volledige paden worden vervolgens afgedrukt, waardoor een uitgebreide lijst van alle bestanden in de map mogelijk is.
Python3
import> os> # Current working directory> current_dir>=> os.getcwd()> # List files in the current directory> files_in_dir>=> os.listdir(current_dir)> # Iterate over files and print their full paths> for> file_name>in> files_in_dir:> >file_path>=> os.path.join(current_dir, file_name)> >print>(file_path)> |
>
>
tekenreeks naar Java-tekenUitvoer
/home/guest/sandbox/1e914974-f313-477e-a710-2057a0037607.in /home/guest/sandbox/driver /home/guest/sandbox/Solution.py>
Itereren over paden met een For-lus
In dit voorbeeld wordt de methode `os.path.join()` binnen een lus gebruikt om dynamisch het volledige pad voor elke vermelde bestandsnaam te creëren. De geconstrueerde paden worden vervolgens afgedrukt om de verwerking van elk respectief bestand aan te geven.
Python3
import> os> # List of file names> names>=> [>'file1.txt'>,>'file2.txt'>,>'file3.txt'>]> # Iterate over file names and process each file> for> file_name>in> names:> >file_path>=> os.path.join(>'/home/user'>, file_name)> >print>(f>'Processing file: {file_path}'>)> |
>
>Uitvoer
Processing file: /home/user/file1.txt Processing file: /home/user/file2.txt Processing file: /home/user/file3.txt>