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.
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 =)
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

naja probiers aus bei mir klappts
BlackJack

@bluelagoon: Das `re.split()` habe ich ausprobiert und die ``if``-Bedingung ist sowas von offensichtlich nicht erfüllbar, dass ich mir das erspart hatte. Aber wenn's Dich glücklich macht:

Code: Alles auswählen

In [795]: line
Out[795]: 'variable= 8S'

In [796]: line.lower().strip().startswith("Variable=")
Out[796]: False
Und es ist vollkommen egal welche Zeichenkette an `line` gebunden ist, diese Bedingung ist sowas von offensichtlich *niemals* erfüllt… :roll:

Zeig doch mal eine Belegung für `line` bei der hier `True` herauskommt!
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

öhm das war nich für datum

ich post dir mal datei und den code ^^
Datei:
[TEXT]
Boottime=5D

Code: Alles auswählen

import re

datei = open ("dp_clienttask.ini","r")
lines = datei.readlines()
for line in lines:
    if line.lower().strip().startswith("boottime="):
       auswahl=int(re.split('^boottime=([0-9]+)[^0-9]*?$', line.lower().strip())[1])
datei.close()

print auswahl
probiers aus 5 wird ausgegebn ;)
Zuletzt geändert von bluelagoon am Freitag 24. September 2010, 14:43, insgesamt 1-mal geändert.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

BlackJack hat geschrieben:@bluelagoon: Das `re.split()` habe ich ausprobiert und die ``if``-Bedingung ist sowas von offensichtlich nicht erfüllbar, dass ich mir das erspart hatte. Aber wenn's Dich glücklich macht:

Code: Alles auswählen

In [795]: line
Out[795]: 'variable= 8S'

In [796]: line.lower().strip().startswith("Variable=")
Out[796]: False
Und es ist vollkommen egal welche Zeichenkette an `line` gebunden ist, diese Bedingung ist sowas von offensichtlich *niemals* erfüllt… :roll:

Zeig doch mal eine Belegung für `line` bei der hier `True` herauskommt!

das wir net aneinander vorbei reden: Das passiert im Sicherungsskript das andere mit dem Datum ist ein Extra-Skript. wenn du meinst das geht nicht probiers aus es wird dir die 5 ausgeben sowie dortsteht Boottime=5D
BlackJack

@bluelagoon: Sorry, aber *wir* reden nicht aneinander vorbei. *Du* redest an *mir* vorbei. Zeigst ein Stück Quelltext, behauptest das funktioniert, meinst aber eigentlich ein anderes was Du gar nicht zeigst…
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

hab doch gesagt ich mein das zweite skript und das hab ich sehr wohl gepostet weiter vorne :) aber BlackJack mach dir nichts draus hauptsache ich geb ruhe oda nich ;)
BlackJack

Hier hast Du das angeblich funktionierende Quelltextstück gepostet: http://www.python-forum.de/viewtopic.ph ... 19#p181019

Und ich sehe nicht wo Du dort oder im folgenden sagst, dass Du nicht *das* Quelltextstück meinst sondern ein ganz anderes. Nicht bevor Du das andere zeigst. Warum dann also überhaupt erst das falsche Quelltextstück und die Behauptung genau das funktioniert, ich sollte es ausprobieren?

Desweiteren hast Du diesen Quelltext auch weiter vorne in diesem Thread nicht gepostet, ich sehe den hier das erste mal. Ich sollte also Deiner Meinung etwas ausprobieren, was ich gar nicht kennen konnte.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

achso ja is meine Schuld jojo passt scho Blacki :)
chill mal es is Freitag. Sry hab grad Derbst andere Probleme hier als mich für das zu Rechtfertigen.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

wisst ihr irgendwie bin ich froh das ich das Forum mrunix gefunden habe da helfen die wenigstens was man hierkaum zu erwarten hat.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

bluelagoon hat geschrieben:wisst ihr irgendwie bin ich froh das ich das Forum mrunix gefunden habe da helfen die wenigstens was man hierkaum zu erwarten hat.
Mit solchen Aussagen motivierst Du mich jetzt aber ungemein Dir weiterhin zu helfen! Mann, hab ich jetzt einen Bock drauf. Wahnsinn! Danke für diesen "Wachrüttler". Nun bin ich total anders drauf und eingestellt... :twisted:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten