Das liest boottime aus und speichert es in time (Bash):
Python würde so aussehen:Code:time=$(sed -nr 's#^boottime=([0-9]+)D?#\1#p')
Code:import re ... for line in datei.readlines(): if line.startswith('boottime='): time=re.split('^boottime=([0-9]+)D?', line)[1]
das heisst also das time die neue variable is für die if-funktion?
In time hast du die Zeit, also hier 5 (in Python als String, kannst du mit int(time) umwandeln).
also nochmal meine Datei kommt vom Server +g+ ich bin ja client.
der server schreibt
[Abaclis_Console]
Boottime=5D
<~ aus dieser 2ten Zeile brauch ich nur die zahl nach dem = und vor dem D
dann wäre mein sicherungsskript endlich fertig hihi
ich bin so weit das meine ausgabe 5D ausgibt nur das D muss noch weg =)
ergibt:Code:datei = open ("dp_clienttask.ini","r") Zeile = datei.readlines() auswahlen=Zeile[1].strip().split('=([0:9])D?', Zeile)[1] datei.close() print auswahlen
python dp_client.py
Traceback (most recent call last):
File "dp_client.py", line 11, in <module>
auswahlen=Zeile[1].strip().split('=([0:9])D?', Zeile)[1]
TypeError: an integer is required
Oben "import re" einfügen, und folgendes ist dann richtig:
Code:auswaehlen=int(re.split('^boottime=([0-9]+)D?', line)[1])
python dp_client.py
Traceback (most recent call last):
File "dp_client.py", line 11, in <module>
auswaehlen=int(re.split('^boottime=([0-9]+)D?', Zeile)[1])
File "/usr/lib/python2.6/re.py", line 167, in split
return _compile(pattern, 0).split(string, maxsplit)
TypeError: expected string or buffer
Keine ahnung was ich nun falsch gemacht hab ^^
Code:#! /usr/bin/env python # -*- coding: UTF-8 -*- import linecache import sys, dbus import os import time import subprocess import re datei = open ("dp_clienttask.ini","r") Zeile = datei.readlines() auswaehlen=int(re.split('^boottime=([0-9]+)D?', Zeile)[1]) datei.close() print auswaehlen
Code:auswaehlen=int(re.split('^boottime=([0-9]+)D?', Zeile[1])[1])
ja hab ich schon versucht geht aber net?
Traceback (most recent call last):
File "dp_client.py", line 12, in <module>
auswaehlen=int(re.split('^boottime=([0-9]+)D?', Zeile[1])[1])
IndexError: list index out of range
Split vergessen, da ist es:
Code:auswaehlen=int(re.split('^boottime=([0-9]+)D?', Zeile.split()[1])[1])
Traceback (most recent call last):
File "dp_client.py", line 12, in <module>
auswaehlen=int(re.split('^boottime=([0-9]+)D?', Zeile.split()[1])[1])
AttributeError: 'list' object has no attribute 'split'
hm nein das will er auch nich
was ich mir halt denk das boottime= 5D das 5 D z.b. is ja nen String warum muss ich da int hinsetzen? oder lieg ich da falsch? gott das tar mit dem update passt auch net er will einzelne Dateien sichern lassen also nen Volles Backup und dann einzelne Daten sichern
Lesezeichen