OMG zu HILFE!
Python 1.5.2 (#1, Aug 8 1999, 01:35:00) [GCC egcs-2.91.66 19990314/Linux (egcs
- on linux2
Und da frag ich mich wies die Entwickler geschafft haben ein dermassen komplexes System zu coden, wenns da netmal so Basics wie indizierte variablen oder boolsche variablen gibt o_o
OHwei, wer kann mir helfen? Bitte
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Nachtrag: Milans Lösung arbeitet mit Iteratoren, da könnte deine alte Pythonversion auch aussteigen.
Schmeiss deinen Sysadmin raus, wenn der eine uraltsuse nicht upgraden kann, ists mit der Sicherheit des Systems auch nicht weit her.
Dookie
Schmeiss deinen Sysadmin raus, wenn der eine uraltsuse nicht upgraden kann, ists mit der Sicherheit des Systems auch nicht weit her.
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
Egal, ich weiss was ich mache.. Den Parser in Perl schreiben denke ich mal, und in den Python scripts nur überprüfen, ob die Datei modifiziert werden muss.
Wenn ja mach ich n os.system('xmlmodify.pl') sollte ja klappen oder?
Wie "halte" ich dann Python solange an, bis das Perlscript abgearbeitet ist?
Wenn ja mach ich n os.system('xmlmodify.pl') sollte ja klappen oder?
Wie "halte" ich dann Python solange an, bis das Perlscript abgearbeitet ist?
Dookie das Problem ist nicht das updaten an sich. Die System hier laufen in nem geschlossenen Kreislauf also daran liegts net.
Nur sind das hier Industrie-PCs mit speziellen Modifikationen, wo schonmal ein BIOS-Update das USB-Support beinhaltet 15.000 Euro kostet.
Und du kannst dir vorstellen, welche Mühe es machen würde so ein System neu aufzusetzen, besonders da wir 365 Tage, 24/7 Betrieb haben
Nur sind das hier Industrie-PCs mit speziellen Modifikationen, wo schonmal ein BIOS-Update das USB-Support beinhaltet 15.000 Euro kostet.
Und du kannst dir vorstellen, welche Mühe es machen würde so ein System neu aufzusetzen, besonders da wir 365 Tage, 24/7 Betrieb haben
Autsch! ...das tat weh. Ich erinner mich, dass ich selbst mal auf 1.4 gecodet habe bevor ich auf 2.2 umgestiegen bin. Meine Version darauf umzupacken ist mir zu dreckig, da veränder ich lieber mal Dookie seine (geht schneller). Das hier sollte auch laufen, obwohls weh tut:
Sodale, das müsste gehen.
mfG Milan
Code: Alles auswählen
import string
try:
True
except NameError:
False, True = 0, 1
def new_calib(line):
pos = string.find(line,"0 ")
repl = "1 " + str(int(line[pos+2:pos+4])+22)[:2]
return string.replace(line,line[pos:pos+4], repl, 1)
infile = open("test.tst", "r")
outfile = open("testneu.tst","w")
chkflag = False
cline = ""
while True:
line=infile.readline()
if line=="":
break
if cline: # Zeile gemerkt?
if string.find(line,"</CALIB>") > -1: #schon Endtag?
line = new_calib(cline) + line # neue Zeile davor einfuegen
cline = "" # Zeile vergessen
if chkflag:
cline = line # Zeile Merken
outfile.write(line)
chkflag = string.find(string.strip(line),"<CALIB") == 0 # naechste merken!
outfile.close()
infile.close()
mfG Milan
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Wenn Du das oerlscript mit os.system startest, wartet das Pythonscript automatisch.
Folgende Version läuft auch mit Python2.1 Falls die auch muckt mach ich eine Version für python1.5 
Gruß
Dookie
Folgende Version läuft auch mit Python2.1
Code: Alles auswählen
try:
True
except NameError:
False, True = 0, 1
def new_calib(line):
""" Neue Zeile erzeugen """
pos = line.find("0 ")
repl = "1 " + str(int(line[pos+2:pos+4])+22)[:2]
return line.replace(line[pos:pos+4], repl, 1)
infile = open("test.tst", "r")
outfile = open("testneu.tst","w")
chkflag = False
cline = ""
for line in infile.readlines():
if cline: # Zeile gemerkt?
if line.find("</CALIB>") > -1: #schon Endtag?
line = new_calib(cline) + line # neue Zeile davor einfuegen
cline = "" # Zeile vergessen
if chkflag:
cline = line # Zeile Merken
outfile.write(line)
chkflag = line.strip().startswith("<CALIB") # naechste merken!
outfile.close()
infile.close()

Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hier noch die 1.5.2 version von mir:
Und mach dem Sysadmin Beine, damit er ein aktuelleres Python installiert, das Compilieren aus den Sourcen ist eigentlich recht problemlos möglich.
Gruß
Dookie
Code: Alles auswählen
import string
try:
True
except NameError:
False, True = 0, 1
def new_calib(line):
""" Neue Zeile erzeugen """
pos = string.find(line, "0 ")
repl = "1 " + str(int(line[pos+2:pos+4])+22)[:2]
return string.replace(line, line[pos:pos+4], repl, 1)
infile = open("test.tst", "r")
outfile = open("testneu.tst","w")
chkflag = False
cline = ""
for line in infile.readlines():
if cline: # Zeile gemerkt?
if string.find(line, "</CALIB>") > -1: #schon Endtag?
line = new_calib(cline) + line # neue Zeile davor einfuegen
cline = "" # Zeile vergessen
if chkflag:
cline = line # Zeile Merken
outfile.write(line)
chkflag = string.strip(line)[:6] == "<CALIB" # naechste merken!
outfile.close()
infile.close()
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
Dumme Frage noch, ich hoffe ich nerve net...
Kann mans so drehen, dass er das FIle gleich umändert und kein neues erzeugt? Ansonsten wenns zuviel Arbeit ist mach ich n normalen Movebefehl, auch net tragisch
Nachtrag: Haha wenigstens kennt meine Pythonversion schon nil
Aber ich verstehs dennoch net wieso es da noch keine Boolschen Variablen zb gibt, das hatte ja schon GW-Basic zu meinen einsteigerzeiten
Kann mans so drehen, dass er das FIle gleich umändert und kein neues erzeugt? Ansonsten wenns zuviel Arbeit ist mach ich n normalen Movebefehl, auch net tragisch
Nachtrag: Haha wenigstens kennt meine Pythonversion schon nil

Aber ich verstehs dennoch net wieso es da noch keine Boolschen Variablen zb gibt, das hatte ja schon GW-Basic zu meinen einsteigerzeiten
Code: Alles auswählen
import string
try:
True
except NameError:
False, True = 0, 1
def new_calib(line):
pos = string.find(line,"0 ")
repl = "1 " + str(int(line[pos+2:pos+4])+22)[:2]
return string.replace(line,line[pos:pos+4], repl, 1)
dateiname="test.tst"
infile = open(dateiname, "r")
zeilen=infile.readlines()
infile.close()
outfile = open(dateiname,"w")
chkflag = False
cline = ""
for line in zeilen:
if cline: # Zeile gemerkt?
if string.find(line,"</CALIB>") > -1: #schon Endtag?
line = new_calib(cline) + line # neue Zeile davor einfuegen
cline = "" # Zeile vergessen
if chkflag:
cline = line # Zeile Merken
outfile.write(line)
chkflag = string.find(string.strip(line),"<CALIB") == 0 # naechste merken!
outfile.close()
Code: Alles auswählen
zahl=5
a=("ungerade","gerade")[(zahl%2)==0]#a ist nun das was zahl ist
File "obsbrowse.py", line 25
for line in zeilen
^
SyntaxError: invalid syntax
Lol ich glaub das System mag mich net
EDIT ne hat sich erledigt, ein leerzeichen zu viel. Bis ich da draufgekommen bin beim ersten Kontakt mit Python, dass Zeileneinschübe ne Rolle in der Abarbeitungsreihenfolge spielen
Habt dank wenn ich fertig bin poste ich den kompltten code, sobald er läuft ;:)
for line in zeilen
^
SyntaxError: invalid syntax
Lol ich glaub das System mag mich net

EDIT ne hat sich erledigt, ein leerzeichen zu viel. Bis ich da draufgekommen bin beim ersten Kontakt mit Python, dass Zeileneinschübe ne Rolle in der Abarbeitungsreihenfolge spielen

Habt dank wenn ich fertig bin poste ich den kompltten code, sobald er läuft ;:)
Code: Alles auswählen
#!/usr/bin/python
import os, string, sys, time, posix
s=string
from cgi import *
try:
True
except NameError:
False, True = 0, 1
def new_calib(line):
pos = string.find(line,"0 ")
repl = "1 " + str(int(line[pos+2:pos+4])+22)[:2]
return string.replace(line,line[pos:pos+4], repl, 1)
def parse_xmlfile(filename):
xml_inbox=posix.environ['CONTROL_INBOX']
infile = open(xml_inbox + '/' + filename , "r")
zeilen = infile.readlines()
infile.close
outfile = open(xml_inbox + '/' + filename , "w")
chkflag = False
cline = ""
ismodified = False
for line in zeilen:
if cline: # Zeile gemerkt?
if string.find(line,"</CALIB>") > -1: #schon Endtag?
line = new_calib(cline) + line # neue Zeile davor einfuegen
ismodified = True
cline = "" # Zeile vergessen
if chkflag:
cline = line # Zeile Merken
outfile.write(line)
chkflag = string.find(string.strip(line),"<CALIB") == 0 # naechste merken!
outfile.close()
return ismodified
# cgi_dir='/cgi-bin/' # change according to your needs
def usage():
print 'usage: obsbrowse.py <directory(=../inbox/)>'
def Main():
import traceback
import obseval
# configure the evaluation module
if len(sys.argv)==2:
fromdir=sys.argv[1]
try:
xmlfiles=obseval.GetXMLFileList()
print "Content-type: text/html\n\n"
print '<HTML><HEAD><TITLE>Observation Browser</TITLE></HEAD><BODY>'
print '<H1>Folgende Beobachtungen wurden noch nicht ausgewertet:</H1>'
print '<UL>'
for i in xmlfiles:
modified = parse_xmlfile(i)
if modified:
print '<LI><A HREF="auswertung.cgi?%s"> %s</A><font color=#008000> modifiziert</font>'%(i,i)
else:
print '<LI><A HREF="auswertung.cgi?%s"> %s</A>'%(i,i)
print '</UL>'
print '<H1>Bitte wählen Sie eine Beobachtung zur Auswertung aus</H1>'
print '</BODY></HTML>'
except:
print "Content-type: text/html\n\n"
print '<HTML><HEAD><TITLE>Error in obsbrowse.py </TITLE></HEAD><BODY>'
print '<PRE> Calling sequence was %s</PRE>'%repr(sys.argv)
print '<PRE> %s: %s</PRE>'%(sys.exc_type,sys.exc_value)
print '<PRE>'
traceback.print_exc()
print '</PRE>'
print '</BODY></HTML>'
if __name__=='__main__':
Main()
So fertig die ganze Geschichte danke Euch beiden

-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ohh, ich habe jetzt einen so schoenen Thread verpasst 
So, jetzt brauchen wir noch eine Version fuer das erste public release von Python

So, jetzt brauchen wir noch eine Version fuer das erste public release von Python

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice