Archiv verlassen und diese Seite im Standarddesign anzeigen : [Python] BASH-Variablen lesen
Hi,
geht das?
Ich hab hier eine Config-Datei, aus der ich die Variable CXXFLAGS auslesen will. Das Problem ist, dass Python bei execfile() einen error meldet, weil CXXFLAGS="${CFLAGS}" ist. Portage kann das ja auch, also muss das ja gehen.
MfG Giuly
[0x[90]|
19-05-2005, 23:28
for line in open("config.cfg").readlines():
if (line.startswith("CXXFLAGS=")): print line.split("=")[1]
gut gedacht, aber ich bekomme dann "${CFLAGS}". Ich wollte aber den echten value haben.
eher so:
for each in open("kA.cfg").readlines():
os.system("bash -c 'export " + each + "'")
os.environ["CXXFLAGS"]
was aber nicht geht, das das nicht exported wird. ich glaub ich mach da einfach ein shell-script vor, dass genau das macht. Bessere Lösungen sind aber trotzdem willkommen ;)
Problem ist nur, dass wenn eine Zeile so ist:
USE="3dnow 3dfx svga cups foomaticdb ppds usb gtk2 nvidia dvd dvdread mpeg avi 3dnow sse sse2 encode"
dann bearbeitet der jedes Wort, und nicht die ganze Zeile. Kann man einer for-Schleife irgendwie sagen, dass sie jede Zeile, und nicht jedes Wort bearbeiten soll (in BASH-Script)
MfG Giuly
IFS auf Return setzen, das geht mit
IFS="
"
#!/bin/bash
source /etc/make.globals
source /etc/make.conf
if [ "${1}" == "" ]
then
echo "Usage: ${0} VARIABLE"
else
echo ${!1}
fi
So gehts auch..
|']
for line in open("config.cfg").readlines():
if (line.startswith("CXXFLAGS=")): print line.split("=")[1]
spar dir Das readlines, der iterator in einem file-objekt ist eleganter und auch speicherschonender.
fs111
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.