• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Python - ścieżka do katalogu aktualnego skryptu

Object Storage Arubacloud
0 głosów
1,222 wizyt
pytanie zadane 2 lutego 2019 w Python przez Kuba Jakubowski Gaduła (3,550 p.)

Jak otrzymać ścieżkę do katalogu aktualnie wykonywanego skryptu. Dotychczas używałem tego:

os.path.dirname(__file__)

Jednak kiedy uruchomię mój skrypt innym skryptem używając np. os.startfile. Otrzymuję błędną ścieżkę. Zależy mi na rozwiązaniu który będzie działało zarówno przy plikach .py oraz .exe "zfreezowanych" przez PyInstaller'a z użyciem atrybutu --onefile.

komentarz 2 lutego 2019 przez Secrus Nałogowiec (32,880 p.)
a może działanie skryptu który próbujesz wywołać zamknąć w funkcji i zaimportować do skryptu wywołującego?

1 odpowiedź

+1 głos
odpowiedź 2 lutego 2019 przez Arkadiusz Sikorski Pasjonat (20,160 p.)
os.path.abspath(__file__) 
os.path.dirname(os.path.abspath(__file__)) 

Pierwsze zwraca ścieżkę absolutną pliku, drugie - ścieżkę absolutną folderu zawierającego obecny plik.

komentarz 2 lutego 2019 przez Kuba Jakubowski Gaduła (3,550 p.)
edycja 3 lutego 2019 przez Kuba Jakubowski

Dzięki, działa

komentarz 2 lutego 2019 przez Kuba Jakubowski Gaduła (3,550 p.)
Wróć, jednak nie działa. Nadal przy otwieraniu "zfreezowanego" exe'ca innym skryptem jest pokazywana ścieżka do skryptu, a nie do exe'ca.
1
komentarz 3 lutego 2019 przez Arkadiusz Sikorski Pasjonat (20,160 p.)

Jeśli używasz pyinstallera, to może zobacz tutaj.

komentarz 3 lutego 2019 przez Kuba Jakubowski Gaduła (3,550 p.)

Znalazłem rozwiązanie:

import sys, os

if getattr(sys, 'frozen', False):
    dir = os.path.dirname(sys.executable)
else:
    dir = os.path.dirname(__file__)

Sprawdzamy czy program jest zamrożony, jeśli tak bierzemy folder z sys.executable, w przeciwnym razie aktualny folder wyciągamy z __file__.

1
komentarz 4 lutego 2019 przez Arkadiusz Sikorski Pasjonat (20,160 p.)
Nie ma za co :)

Podobne pytania

0 głosów
1 odpowiedź 305 wizyt
+1 głos
0 odpowiedzi 203 wizyt
pytanie zadane 3 sierpnia 2021 w Python przez Pico Obywatel (1,330 p.)
+1 głos
2 odpowiedzi 609 wizyt
pytanie zadane 10 grudnia 2018 w Python przez Milesq Nałogowiec (32,020 p.)

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...