Seite 1 von 1
Werte Speichern
Verfasst: Dienstag 7. Juni 2011, 15:15
von Campionissimo
Hallo,
ich möchte das aktuelle Datum mit Uhrzeit für verschiedenen Ordner benutzen.
Ich erstelle vier Textdateien mit jeweils diesen aufruf.
b= time.strftime(%d%m%Y%H%M%S)
a=open("c:\....\%s hallo" %b, "a"
Das ist jetzt der Name der Datei.
Diese Datei erstell ich 4 mal und möchte aber immer die selbe Zeit haben.
Das mit der Zeit ist wichtig damit ich die erstellten Datei Unterscheiden kann.
Danke und Gruß
Re: Werte Speichern
Verfasst: Dienstag 7. Juni 2011, 15:25
von BlackJack
@Campionissimo: Dann darfst Du `b` halt für alle vier Dateien nur einmal berechnen und nicht für jede Datei neu.
Re: Werte Speichern
Verfasst: Dienstag 7. Juni 2011, 15:32
von Campionissimo
Wahrscheinlich eine ganz blöde frage wie soll das gehen ?
Jedes mal wenn ich b aufrufe kommt ein anderes Zeitformat
Re: Werte Speichern
Verfasst: Dienstag 7. Juni 2011, 16:01
von BlackJack
@Campionissimo: Du darfst halt für alle vier Dateien die Zeit nur einmal ermitteln und nicht für jede. Mehr kann man da so nicht zu sagen. Wie das geht? Man ermittelt die Zeit nur einmal und nicht viermal.
`b` wird übrigens nicht aufgerufen, das ist an eine Zeichenkette gebunden.
Re: Werte Speichern
Verfasst: Dienstag 7. Juni 2011, 16:06
von /me
Campionissimo hat geschrieben:Jedes mal wenn ich b aufrufe kommt ein anderes Zeitformat
Eher nicht.
Code: Alles auswählen
b = time.strftime(%d%m%Y%H%M%S)
print b
print b
print b
Da bekommst du unterschiedliche Ausgaben?
Re: Werte Speichern
Verfasst: Dienstag 7. Juni 2011, 16:17
von Campionissimo
oh, mann ich bin so b......
Die Zeit hat sich ja gar nicht mehr verändert.
Hab nur vergessen die Zeit sdie in b steht zu übergeben;)
Re: Werte Speichern
Verfasst: Dienstag 7. Juni 2011, 16:26
von Campionissimo
Aber ich hätte noch was anderes, wo ich schon länger probs hab.
In einem Modul ist eine Variable i.
Diese ist in einer if Bedingung drin.
D.h. jedes mal wenn ich in die If bedingung rein komm. wird i erhöht.
Jetzt möchte ich diese aktuelle variable in der if Bedingung an ein anderes Modul übergeben.
Ich springe auch schon von dieser Position im Code zu dem anderen Modul.
ungefähr so:
a=thread_Modul1.run()
Modul1 ist das Modul
und run(9 eine def wo ich das mit dem i bearbeiten möchte.
Hab das ganze schon über Import der variablen probiert oder über meinen thread.
wie könnt das gehen
Re: Werte Speichern
Verfasst: Mittwoch 8. Juni 2011, 07:42
von frabron
Sorry, aber mit dieser Problembeschreibung wird das nix, das versteht ja kein Mensch.
Code: Alles auswählen
... Ich springe auch schon von dieser Position im Code ...
Basic? GOTO 10?

Re: Werte Speichern
Verfasst: Mittwoch 8. Juni 2011, 10:30
von mutetella
Hmm, bin mir nicht sicher, ob ich Dich richtig verstehe, aber ich könnte mir vorstellen, dass Du das mit einer Klasse erreichen kannst. Module sind IMHO nicht der geeignete Ort zur Ablage veränderlicher Daten und deren Weiterreichung.
Code: Alles auswählen
class Count(object):
def __init__(self):
self.counter = 0
def count_up(self, number):
self.counter += number
def count_down(self, number):
self.counter -= number
In [85]: c = Count()
In [86]: c.count_up(10)
In [87]: c.counter
Out[87]: 10
In [88]: c.count_down(5)
In [89]: c.counter
Out[89]: 5
Natürlich könnten in dieser Klasse auch if-Abfragen stattfinden, innerhalb derer Du Werte definierst/änderst. Die Methoden 'count_up()' und 'count_down()' sollen dafür nur ein Beispiel sein.
Das Exemplar 'c' kannst Du nun wohin auch immer weiterreichen und dort den Wert 'counter' abfragen.
mutetella
Re: Werte Speichern
Verfasst: Mittwoch 8. Juni 2011, 19:17
von Campionissimo
Ja, so ungefähr hast du Recht. Du überschreibst immer die 0 indem du einen int addierst.
Ich möchte es mit zwei threads machen und einen der das ganze verbindet.
Code: Alles auswählen
a = Thread_a.Threada()
b = Thread_b.Threadb(a.time, a.timedaten)
a.start()
b.start
Das soll die Verbindung zwischen den Threads sein
hier Thread_a
Code: Alles auswählen
class Threada(threading.Thread):
def __init__(self, timedaten):
self.timedaten = timedaten
threading.Thread.__init__(self)
def run(self):
fzeit = int(time.strftime(%d%m&Y%H%M%S)
zeit1=Threada(fzeit)
hier der Thread b
Code: Alles auswählen
class Threadb(threading.Thread):
def __init__(self,fzeit):
self.fzeit=fzeit
threading.Thread.__init__(self)
def run():
print self.zeit
Also ich möchte die Zeit im Threada generieren und dann über mein main thread an den thread b übergeben und benutzen.
Es soll kein fester Wert sein. Sonst würde ich in der __init__ die Zeit zuweisung machen.
Weiß wer was wie das geht.
Glaub der compiler meckert ich habe 2 argumente, aber es ist nur 1 da.
Vielen Dank und Grüße
Re: Werte Speichern
Verfasst: Mittwoch 8. Juni 2011, 19:54
von /me
Campionissimo hat geschrieben:
Code: Alles auswählen
a = Thread_a.Threada()
b = Thread_b.Threadb(a.time, a.timedaten)
a.start()
b.start
Tu dir uns uns den Gefallen und erstelle zumindest ein lauffähiges Beispiel. Daran kannst du dann erklären was du möchtest. Zur Zeit ist, zumindest meinerseits, Raten angesagt. Vielleicht suchst du
Queues?
Verwende hier bitte beim Posten von Sourcecode Python-Code-Tags, dann lässt sich das besser lesen.
Re: Werte Speichern
Verfasst: Freitag 10. Juni 2011, 06:56
von Campionissimo
Ich habs jetzt hinbekommen.
ich wollte ja vom Threada (Uhrzeit) über Threadhaupt an den Threadb weitergeben. Aber keinen festen Wert sondern einen immer wieder aktualisierenden Wert.
Hab jetzt den threada bescheid gegeben, dass es noch einen Threadb gibt. Und es funzt, aber das Ergebnis ist nicht so gut, da ich einen Zeitverzögerung drin hab von 2-3 sec. Und wenn ich das öfter mach bekommt man schöne Sachen, absturz usw.
D.h. mehrere veränderbare Variablen übergeben.
Aber mit queue haste recht das funzt auch. Kann mann eigentlich mehrere queue machen ?
Also das ganze Szenario initalisieren und übergeben mit einer zweiten Queue.
Oder übergibt man nur mehr Parameter ?
Gruß