Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Polut Python-koodissa ja Gitissä (Windows)

Multibyte [29.12.2017 11:02:25]

#

Moi

Mitä kautta nuo tiedostokutsut kulkee? Vaikuttaisi, että koodissa tiedostopolut tulee olla "Windows-formaatissa" tyyliin r'C:\koodini\tarvitsemat\tiedostot', kun taas git bash komentorivillä kelpaa linux /c/koodini/tarvitsemat/tiedostot/, mutta koodissa tuo linux formaatti ei toimi, kun tiedostoa ei löydy?

groovyb [29.12.2017 13:27:57]

#

Miten gitin bash liittyy siihen miten kansiot käsitellään koodissa? lähtökohtaisesti muutenkin ei ole suositeltavaa käyttää koodissa absoluuttisia hakemistopolkuja, tämä hankaloittaa asennusta seuraavaan järjestelmään.

Metabolix [29.12.2017 16:30:08]

#

Pythonissa on moduuli os.path polkujen yhdistelyä varten. Absoluuttisia polkuja ei tosiaan kannata kirjoittaa koodiin, vaan polku kannattaa suhteuttaa esimerkiksi ohjelman sijaintiin tai johonkin asennusvaiheessa määriteltävään sijaintiin, jotta ohjelma toimii myös muiden koneilla. Poluissa voi yleensä käyttää /-merkkiä myös Windowsissa, mutta polun alku on silloinkin C:/ eikä /C/. Sen sijaan \-merkki ei toimi muissa järjestelmissä, joten / on parempi valinta. Kaikkein parasta on tietysti os.path-moduulin tarjonta.

Gitillä ja koodin sisällöllä ei ole mitään tekemistä keskenään, joten niitä on turha mainita samassa kysymyksessä.

Multibyte [29.12.2017 22:04:51]

#

Ok, en tiennyt, että onko sillä käytettävällä komentokehotteella eroa.
Koodi kuitenkin antoi debug arvoksi aina c:\asd\/tiedosto.x eli koodissa kutsuttavan tiedoston polku tuli tuolla kenolla linux tyyliin.
Ajattelin, että pitäisikö olla vastaavasti...

Koodi ei ole myöskään omaa vaan sain sen perintönä tyypiltä, joka pyöritti sitä Linuxilla, jota taas itsellä ei ole töissä käytettävissä.
En sitten lähtenyt "refaktoroimaan" sitä, kun se tekee kohtuudella sen minkä lupaa :)

Mutta kiitos vinkeistä, pistetään os.path seuraavaksi lukulistalle...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta