op deze pagina: open (), file path, CWD (‘current working directory’), R’ raw string ‘ prefix, os.getcwd (), os.chdir ().

refererend naar een bestand met een volledig pad en naam

zoals te zien is in Tutorials #12 en #13, kunt u naar een lokaal bestand in Python verwijzen met behulp van het volledige pad en de bestandsnaam., Below, you are opening up a file for reading:

>>> myfile = open('C:/Users/narae/Desktop/alice.txt') # Windows>>> mytxt = myfile.read()>>> myfile.close()
>>> myfile = open('/Users/narae/Desktop/alice.txt') # Mac and Linux>>> mytxt = myfile.read()>>> myfile.close()

In Windows, a full file directory path starts with a drive letter (C:, D:. etc.)., In Linux en OS-X begint het met “/”, wat root wordt genoemd. Mappen worden gescheiden door een schuine streep “/”. U kunt het volledige directorypad en de bestandsnaam van een bestand opzoeken via de “Properties”. Zie hoe het wordt gedaan in deze FAQ.

naar een bestand verwijzen in Windows

in Windows zijn er een paar extra manieren om naar een bestand te verwijzen. Dat komt omdat native, Windows file path maakt gebruik van de backslash ” \ ” in plaats van de slash. Python maakt het gebruik van beide in een Windows-systeem, maar er zijn een paar valkuilen om op te letten., Om ze samen te vatten:

sneltoetsen voor bestandsnamen en CWD (huidige werkmap)

dus, het gebruik van het volledige pad naar de map en de bestandsnaam werkt altijd; u zou deze methode moeten gebruiken. Echter, je zou kunnen hebben gezien bestanden genoemd door hun naam alleen, bijvoorbeeld ‘ alice.txt ‘ in Python. Hoe wordt het gedaan?

het concept van Current Working Directory (CWD) is hier cruciaal. Je kunt het zien als de map waarin je Python momenteel werkt. Tot nu toe hebben we het absolute pad gebruikt, dat begint vanuit de bovenste directory. Maar als uw bestandsreferentie niet vanaf de bovenkant begint (bijv. ‘ alice.,txt’, ‘ ling1330 / alice.txt’), neemt Python aan dat het begint in de CWD (een “relatief pad”).
dit betekent dat een naam-alleen-verwijzing alleen succesvol zal zijn als het bestand zich in uw Python ‘ s CWD bevindt. Maar houd in gedachten dat uw CWD kan veranderen. Ook heeft je Python verschillende initiële CWD instellingen, afhankelijk van of je met een Python script werkt of in een shell omgeving.

  • In een Python-script:
    Wanneer u uw script uitvoert, wordt uw CWD ingesteld op de map waar uw script zich bevindt., Daarom kunt u alleen naar een bestand in een script verwijzen met zijn naam als het bestand en het script zich in dezelfde map bevinden. Een voorbeeld:

    myfile = open('alice.txt') # alice.txt is in the same dir as foo.pymytxt = myfile.read()myfile.close()foo.py 

  • in Python shell:
    in uw shell varieert de initiële CWD-instelling per systeem. In Windows is de standaardlocatie vaak ‘C:/program bestanden (x86) / Python35-32’ (wat lastig is-zie deze “basisconfiguraties” pagina of deze FAQ voor hoe het te veranderen). In OS-X is het meestal ‘/Users/username/Documents’ waar gebruikersnaam uw gebruikers-ID is. (Mac-gebruikers moeten deze FAQ zien voor het wijzigen van uw instelling.,) Tenzij uw bestand zich in uw CWD bevindt, hebt u twee opties:
    1. Wijzig uw CWD naar de map van het bestand, of
    2. kopieer of verplaats uw bestand naar uw CWD. (Niet aanbevolen, omdat de CWD van je shell kan veranderen.)

zie deze schermafbeelding en de volgende sectie voor hoe te werken met je CWD instelling in Python shell.

het vinden en wijzigen van CWD

Python module os Biedt hulpprogramma ‘ s voor het weergeven en wijzigen van uw huidige werkmap. Hieronder illustreert hoe u uw CWD (.getcwd ()) en verander het in een andere directory (.chdir ())., Hieronder is een voorbeeld voor het windows OS:merk op dat de CWD geretourneerd door Python interpreter is in de Windows file path formaat: het maakt gebruik van de backslash “\” voor directory scheidingsteken, en elke instantie is ontsnapt. Terwijl Python laat Windows-gebruikers Linux/OS-X stijl gebruiken ” / ” in bestandspaden, intern gebruikt het OS-native bestandspad formaat.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *