Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Wangarad 17. 08. 2019, 11:33:01
-
Zdravim.
Neviem co je zle na tomto ale os.path.join mi vracia v 2 pripadoch spravnu hodnotu v tretom vsak osekava string.
output_path = os.path.dirname(__file__)
icons = os.path.join(output_path, 'data\g1.ico')
image_pause = os.path.join(output_path, 'data\pause.png')
image_start = os.path.join(output_path, 'data\start.png')
image_tracking_button = os.path.join(output_path, 'data\racking.png')
print (image_pause)
print (image_start)
print (image_tracking_button)
vracia toto
C:\Users\x\data\pause.png
C:\Users\x\data\start.png
C:\Users\x\dataacking.pn g
preco? vsetko je to v jednom subore volane na zaciatku scriptu. Python 3.7 windows 10
-
Všimni si, že v posledním řetezi máš 'data\racking.png'), kde '\r' character je tzv. "carriage return".
Koukám že jsi na Widlích viz ty zpětný lomítka. Doporučím ti použít místo os.path moderní Pathlib https://docs.python.org/3/library/pathlib.html, která za tebe řeší např. formát cesty. Pokud chceš rychlý řešení, tak escapuj '\\r'.
-
Koukni na "Python special characters" ať předejdeš dalším problémům. Další možnost je použít raw string, takže prefixuješ pomocí r: `os.path.join(output_path, r'data\racking.png')`.
-
Dakujem za odpovede. Ten specialny charakter som nepostrehol.
Pouzil som riesenie s r' este raz dakujem
-
Dakujem za odpovede. Ten specialny charakter som nepostrehol.
Pouzil som riesenie s r' este raz dakujem
Další možností je klasické zdvojení zpětného lomítka
-
Já bych ještě podotknul, že join v takovém případě moc nemá smysl. Spíš bych to viděl takhle:
icons = os.path.join(output_path, 'data', 'g1.ico')
-
Já bych ještě podotknul, že join v takovém případě moc nemá smysl. Spíš bych to viděl takhle:
icons = os.path.join(output_path, 'data', 'g1.ico')
Jo, to je zdaleka nejlepší řešení.
-
Jo, to je zdaleka nejlepší řešení.
nejlepší je použít pathlib, jak jste radil výše.