Seite 1 von 1

bei einer pyw Datei etwas in eine Textdatei schreiben

Verfasst: Montag 12. Mai 2008, 18:29
von Teabag
Hey, hab noch eine frage :-D
Ich will etwas in eine Textdatei schreiben, dies klappt auch super.
Doch wenn ich die Datei ".pyw" nene, da sie im Hintergrund arbeiten soll
erstellt das Programm die Datei zwar noch, schreibt aber nicht das gewünschte hinein.
Ich hoffe ihr könnt mir helfen..
Danke.

Gruß Teabag

Re: bei einer pyw Datei etwas in eine Textdatei schreiben

Verfasst: Montag 12. Mai 2008, 20:49
von gerold
Teabag hat geschrieben:könnt mir helfen..
Hallo Teabag!

Hast du Quellcode für uns?

mfg
Gerold
:-)

Verfasst: Montag 12. Mai 2008, 22:54
von Teabag
Hi,
hier der quelcode, er wimmelt warscheinlich von Schönheitsfehlern^^

Code: Alles auswählen

# -*- coding: cp1252 -*-
import urllib2
import time
import sys
import os
sys.stderr = file("zerrors.log", "w")
class calculator:
    def __init__(self):
        self.last_lines = []
        self.klickzahl = []
        self.reloader = file("time.txt", "w")
        self.endtime = 0
        self.i = 0
        self.klickimport()

    def klickimport(self):
        self.klickimport = open("klick.txt")
        for line in self.klickimport:
            self.klickzahl.append(line)
        self.klickimport.close()
        if self.klickzahl:
            zahl = self.klickzahl[-1]
            klicks = zahl
            self.klicks = float(klicks)
            self.reklicks = 100 - self.klicks
            self.endklicks = 100 - self.klicks
        self.importer()
        
    def importer(self):
        self.websrc = urllib2.urlopen("http://profitmails.de/home.php")
        for line in self.websrc:
            self.last_lines.append(line)
        self.websrc.close()
        if self.last_lines:
            zahl = self.last_lines[164]
            zahl.split(" ")
            user = zahl[198:201]
            self.useranzahl = float(user)
            print "Verbinde zur Datenbank..."
            time.sleep(1)
            print "Es sind", self.useranzahl, "User online."
            self.last_lines = []
            self.timer(self.useranzahl)

    def timer(self, user):
        basis = 175
        durchschnitt = 3.4
        klickpromin = 0.019428571428571428571428571428571
        if self.i > 0:
            self.endklicks = self.reklicks - (user * klickpromin)
            self.reklicks = self.endklicks
            print "ja"
        self.endtime = self.endklicks / (user * klickpromin)
        print "Noch", self.endtime, "Minuten bis zum 100. Klick."
        self.endtimestring = str(self.endtime)
        [b]self.reloader.write(self.endtimestring)[/b]
        if self.endtime <1> 0:
            os.startfile("popup.py")
            self.klicks = 0
            self.reklicks = 100 - self.klicks
            self.endklicks = 100 - self.klicks
        time.sleep(60)
        self.i += 1
        self.importer()

start = calculator()
Hier:

Code: Alles auswählen

self.reloader.write(self.endtimestring)
Schon mal vielen Dank.

mfg

Teabag

Verfasst: Dienstag 13. Mai 2008, 07:57
von Trundle
Teabag hat geschrieben:Hier:

Code: Alles auswählen

self.reloader.write(self.endtimestring)
Soweit kommt man gar nicht.

Code: Alles auswählen

if self.i > 0:
    self.endklicks = self.reklicks - (user * klickpromin)
`self.endklicks` gibt es nur, wenn `self.i` größer ``0`` ist.

`self.i` wird aber am Anfang auf ``0`` gesetzt und (bis diese Stelle erreicht wird) niemals verändert, also gibt es einen ``AttributeError``.

Verfasst: Dienstag 13. Mai 2008, 09:06
von Teabag
Hallo,
aber

Code: Alles auswählen

self.reloader.write(self.endtimestring)
hat doch nichts mit self.endklicks zu tun. Es soll ja nicht self.endklicks in eine Datei geschrieben werden, sonder self.endtimestring...

Verfasst: Dienstag 13. Mai 2008, 09:11
von Trundle
Teabag hat geschrieben:Hallo,
aber

Code: Alles auswählen

self.reloader.write(self.endtimestring)
hat doch nichts mit self.endklicks zu tun. Es soll ja nicht self.endklicks in eine Datei geschrieben werden, sonder self.endtimestring...

Code: Alles auswählen

self.endtime = self.endklicks / (user * klickpromin)
print "Noch", self.endtime, "Minuten bis zum 100. Klick."
self.endtimestring = str(self.endtime)
Also.. zumindest für mich hat `self.endklicks` etwas mit `self.endtimestring` zu tun.

Verfasst: Dienstag 13. Mai 2008, 09:15
von Teabag
Okay, da hast du recht, aber diese Stelle wird immer ausgeführt und nicht nur wenn i größer 0 ist....

Verfasst: Dienstag 13. Mai 2008, 09:22
von Trundle
Führe den Code mal mit einer leeren ``klicks.txt`` aus.