windows - Få adgang til eksterne programdatafiler fra script i Python

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har ekstern data input, som jeg bruger i mine python scripts (faktisk en Excel-fil som en skabelon). Denne eksterne fil er specifik for den version af scriptet, som jeg tjekker ind på SVN. Så jeg formoder, at jeg også bør kontrollere den eksterne fil?


Hvordan ville du klare, at scriptet finder filen (jeg bruger Windows)? En relativ vej til den aktuelle mappe? Kontrol af sys.path stier manuelt? Nogle parametre givet til scriptet, som specificerer rodmappen for relative adgangsveje?

Bedste reference


Et fælles idiom til at finde datafiler er dette:


my\_dir = os.path.dirname(sys.argv[0])
data\_file\_path = os.path.join(my\_dir, data\_filename)


Så hvis dit script lever i /some/path/script.py og data\_filename er myfile, vil dette korrekt finde /some/path/myfile, når dit script udføres.





Dette virker på både Windows og Linux

Andre referencer 1


Ja du har ret, du skal tilføje din fil til SVN, hvis det er afgørende for dit programm samlet og er nødvendigt i runtime. Jeg ville bruge relativ sti og sætte den nævnte fil inde i projektmappen.


For den anden del af dit spørgsmål skal du kigge på diveintopython meget god forklaring på forskellige måder at få adgang til scriptets sti. [6]