Hei. Voisiko joku kertoa, miten voin laatia esimerkiksi työpöydälle kansion. Osaan kyllä luoda ja tallettaa .txt tiedostoja, mutta en osaa tehdä niille kansiota.
Kiitos jos voitte auttaa:-)
Ilmeisesti os.makedirs auttaa: https://stackoverflow.com/questions/12517451/
filename = "/foo/bar/baz.txt"¨ os.makedirs(os.path.dirname(filename), exist_ok=True) with open(filename, "w") as f: f.write("FOOBAR")
Ilmeisesti tarkoitit tätä. Mitenköhän tämä toimii? Tuo foo/bar ovat ilmeisesti kansioita joissa tuo baz.txt tiedosto on?
Minulla olisi siis vain tarve luoda yksi kansio, johon voin sitten myöhemmin lisätä .txt tiedostoja.
Kokeilin koneellani seuraavaa koodia, jonka nimesin demo.py
import os import errno filename = "./demo/" if not os.path.exists(os.path.dirname(filename)): try: os.makedirs(os.path.dirname(filename)) except OSError as exc: # Guard against race condition if exc.errno != errno.EEXIST: raise
Tämä teki kansion demo ajettuun hakemistoon:
jaakko@jaakko-Aspire-E1-572:~/Desktop/Kaikki/Programming$ ls ahdruud2.py demo.py lastchecked.txt md5.py piinkova.py polynomial.py ahdruud.py dijkstra.py libgraph-1.0.2 openssl-1.0.1g piinkova.pyc __pycache__ android-studio dist luvut.py openssl-1.0.1g.tar.gz piinkova.py.save result.txt baz.txt kello.py md5 out.txt piinkova.spec testi.txt build lamput.sage.py md5.c piinkova.c piinkova.txt vaaleihinaikaa.py jaakko@jaakko-Aspire-E1-572:~/Desktop/Kaikki/Programming$ pypy demo.py jaakko@jaakko-Aspire-E1-572:~/Desktop/Kaikki/Programming$ ls ahdruud2.py demo lamput.sage.py md5.c piinkova.c piinkova.txt vaaleihinaikaa.py ahdruud.py demo.py lastchecked.txt md5.py piinkova.py polynomial.py android-studio dijkstra.py libgraph-1.0.2 openssl-1.0.1g piinkova.pyc __pycache__ baz.txt dist luvut.py openssl-1.0.1g.tar.gz piinkova.py.save result.txt build kello.py md5 out.txt piinkova.spec testi.txt jaakko@jaakko-Aspire-E1-572:~/Desktop/Kaikki/Programming$
Hei, toimii:-)
Eikö se ole niin, että tämä alla oleva koodi voidaan jättää ohjelman alkuun, sitä ei tarvita kuin ohjelmaa avatessa, kansion luomisen voi tehdä myöhäisemmässä vaiheessa?
import os import errno
Kiitos sinulle.
Kerran tarvittavia asioita tarvitsee kirjoittaa koodiin vain kerran. Olen kuitenkin tottunut kirjoittamaan loogiset kokonaisuudet omiksi funktioikseen. Eipä sitä ikinä tiedä tuleeko joskus samantapainen tilanne, jolloin koodia on helppo kopioida.
KIITOS:-)
Aihe on jo aika vanha, joten et voi enää vastata siihen.