print-problem o.O

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

@bluelagoon: "strftime" gibt doch schon einen String zurück.Du musst doch keinen String in einen String umwandeln.

Code: Alles auswählen

>>> lt = time.localtime()
>>> st = time.strftime("%d.%m.%y", lt)
>>> st
'24.09.10'
>>> type(st)
<type 'str'>
Gruß...busfahrer
Alles wird gut ;-)
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

ja ich habs grad irgendwie auch gemerkt aber ich muss das Datum der Datei die in der Datei steht in ein string umwandeln
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

bluelagoon hat geschrieben:ich hör immer nur Kritik Kritik.
Na, dafür postest du doch hier: Um etwas zu lernen! Und das geht halt nur, wenn du die Grundlagen (zumindest halbwegs) verstanden hast und dir selbst Gedanken machst. Wenn dir Lösungen vorgekaut werden, ist der Lerneffekt ziemlich gering.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

naja ich komm oft auf die Lösungen auch wenn ich dafür nen Gedankenstoß brauch -.-
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

bluelagoon hat geschrieben:naja ich komm oft auf die Lösungen auch wenn ich dafür nen Gedankenstoß brauch -.-
Und verwendest immer noch os.system() - obwohl Dir das subprocess-Modul nahe gelegt wurde und Du es sogar importierst!

Naja, und wenn Du Dich mal mit Funktionen beschäftigt hättest, wäre Dein Code auch nicht mehr so Spagettihaft und lesbarer. Zudem würdest Du Dich bei der Benutzung fremder Funktionen leichter tun.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

os.system wird verwendet für den tar_befehl ...
jetz mal was anderes... warum soll ich das umändern wenn ich das mit os machen kann?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Steht in der Doku:
The subprocess module provides more powerful facilities for spawning new processes and retrieving their results; using that module is preferable to using this function. Use the subprocess module. Check especially the Replacing Older Functions with the subprocess Module section.
Desweiteren bringt es Dir ja nichts Module zu importieren, die Du dann nicht verwendest.

Und Du könntest Deinen Code durchaus in Funktionen gliedern und diesen if...elif...else-Dispatching Code wegwerfen bzw. verschlanken.

Es ist ungemein hilfreich, unterschiedliche Funktionalität auch in verschiedene Funktionen zu packen. Das hilft bei der allg. Strukturierung Deines Codes und auch für eine gute Wiederverwendbarkeit.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

naja wie dem auch sei -.- zurück zum Thema


wie splite ich eine Datei so das ich nur eine Einzelne Zahl bekomme?

z.b.
Text
Variable=4T
ich brauch nur die Zahl kann man das irgendwie Trennen vom T?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

bluelagoon hat geschrieben:naja wie dem auch sei -.- zurück zum Thema


wie splite ich eine Datei so das ich nur eine Einzelne Zahl bekomme?

z.b.
Text
Variable=4T
ich brauch nur die Zahl kann man das irgendwie Trennen vom T?
Gibt viele Möglichkeiten; eine gute Möglichkeit wäre ein RegExp. Schau Dir einfach mal die Doku zum re-Modul an.

Desweiteren: Ich würde an Deiner Stelle nicht so ignorant und bockig reagieren. Die Tipps und Hinweise bezüglich Dinge, die nicht direkt und unmittelbar mit Deiner Frage zusammen hängen, werden hier nicht ohne Grund gegeben!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

wenn du meinst Hyperion.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

python dp_cron.py
Traceback (most recent call last):
File "dp_cron.py", line 9, in <module>
str=(strftime("%d.%m.%Y",Zeit))
TypeError: argument must be 9-item sequence, not str

Code: Alles auswählen

lt = localtime()
datei = open ("test.ini","r")
Zeile = datei.readlines()
Zeit=Zeile[1].strip().split(" ")[1]
str=(strftime("%d.%m.%Y",Zeit))
datei.close()
print strftime("%d.%m.%Y",Zeit)
die Zeit in der Datei is aber kein String.
BlackJack

@bluelagoon: Doch ist sie. Was sollte sie sonst sein!?
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

warum lässt sich dann komischer weise die Zahl nicht mit strptime umwandeln oder mit str = strftime etc ? irgendwie muss ich DEN ........ doch endlich umwandeln können -.-
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

BlackJack hat geschrieben:@bluelagoon: Doch ist sie. Was sollte sie sonst sein!?
jetz weis ich was du falsch verstanden hast...
ich hab in einer Datei ein Datum dieses wird vom server geschrieben
da steht drin

Variable=5D 23.04.2010 als beispiel
das heisst wenn 5 drinsteht sichern von Heut bis zum Datum in der Datei. also das Datum in der Datei ist kein String aber die variable lt ist zum String geworden.
das heisst wenn ich lt so stehn lass ist lt auch kein string und dann müsste es doch klappen oder nicht?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

bluelagoon hat geschrieben:warum lässt sich dann komischer weise die Zahl nicht mit strptime umwandeln oder mit str = strftime etc ?
Die beiden Funtkionen machen ja auch extrem unterschiedliches... wozu da das "oder"?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

ja das mit den unterschiedlichen funktionen weis ich hab ich gelesen hab jetz lt so belassen wie es is un nich als string umwandeln.
BlackJack

@bluelagoon: Ich habe nichts falsch verstanden. Das Datum in der Datei ist eine Zeichenkette weil Dateien nun einmal Zeichenketten enthalten -- sogar nur Zeichenketten enthalten *können*. Daran ändert sich auch nichts wenn Du 100 mal behauptest es wäre keine Zeichenkette. :roll:

Wenn Du die aktuelle Zeit und das Datum in der Datei vergleichen willst, musst Du dafür sorgen, dass beide vom gleichen Typ sind. Wenn es ein Vergleich auf grösser oder kleiner als sein soll, musst Du zusätzlich bedenken, dass Zeichenketten lexikografisch verglichen werden, was bei Zahlen oder Datumsangaben nur unter bestimmten Bedingungen das gewünschte Ergebnis bringt.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

hier noch das mit der Variable die Lösung:
Beispiel:

text
variable= 8S

Code: Alles auswählen

outfile = open ("datei.ini","r")
Zeilen = datei.readlines()
for line in Zeilen:
    if line.lower().strip().startswith("Variable="):
       auswaehlen=re.split('^Variable=([0-9]+)[^0-9]*?$', line.lower().strip())[1]
outfile.close()
print auswaehlen
BlackJack

@bluelagoon: Das kann nicht funktionieren. Die ``if``-Bedingung kann niemals wahr sein.

Das `split()` ist ebenfalls so komplett sinnfrei weil dort immer `line` komplett zurückgegeben wird.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

es kann nicht funktionieren? komisch das meins funktioniert :)
und meine Sicherung durchführt =)
Antworten