Programmatisk å endre Python kilde

stemmer
7

Dette er noe som jeg tror vil være svært nyttig. I utgangspunktet vil jeg gjerne at det skal være en måte å redigere Python kilde programma uten behov for menneskelig inngripen. Det er et par ting jeg ønsker å gjøre med dette:

  1. Redigere konfigurasjonen av Python applikasjoner som benytter kildemoduler for konfigurasjon.

  2. Sett opp en mal, slik at jeg kan tilpasse en Python kildefilen på fly. På denne måten kan jeg sette opp et prosjekt system på en åpen kildekode-app jeg jobber med og tillate visse filer som skal tilpasses.

Jeg kunne sikkert skrive noe som kan gjøre dette selv, men jeg kan se at åpne opp mye av djevelens i detaljene type problemer. Er det noen måter å gjøre dette nå, eller er jeg bare nødt til å bite i kule og implementere det selv?

Publisert på 28/08/2008 klokken 14:23
kilden bruker
På andre språk...                            


3 svar

stemmer
3

Pythons standard bibliotek gir ganske gode fasiliteter for å arbeide med Python kilde; oppmerksom på tokenize og parser moduler.

Svarte 28/08/2008 kl. 14:27
kilden bruker

stemmer
0

De fleste av disse slags ting kan bestemmes auto i Python, ved hjelp av moduler som sys, os, og den spesielle _file_ identifikator som forteller deg hvor du er i filsystemet banen.

Det er viktig å huske på at når en modul er først importeres det vil utføre alt i filen-omfang, noe som er viktig for å utvikle systemavhengig atferd. For eksempel os modulen utgangspunktet avgjør hvilket operativsystem du bruker på import og justerer deretter gjennomføringen deretter (ved å importere en annen modul tilsvarer Linux, OSX, Windows, etc.).

Det er mye makt i denne funksjonen og noe langs disse linjene er sannsynligvis det du leter etter. :)

[Edit] Jeg har også brukt socket.gethostname () i noen sjeldne, hackish tilfeller. ;)

Svarte 30/08/2008 kl. 08:35
kilden bruker

stemmer
0

Jeg hadde det samme problemet, og jeg bare åpnet filen og gjorde noen erstatter: legg filen i Python. Dette fungerer fint og er lett å gjøre.

Ellers AFAIK du må bruke noen conf stedene.

Svarte 28/08/2008 kl. 20:33
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more