python Variable hochzählen

Gast #6996733
Lesenswert?

Mike schrieb:
> Ist extrem viel Code. Ich brauche eigentlich nur ein klines Beispiel wie
> ich eine Variable hochzählen kann und auch wie man in den Funktionen
> Daten in eine Textdatei ablegt.

Dir ist es zuviel Aufwand ein kurzes Programmschnipsel mit genau der 
Funktion aufzubereiten?
Dir ist es zuviel Aufwand die von mir verlinkte Doku mit genau den 
passenden Beispielen (ok, nur mit Text, aber egal) durchzulesen?

Dann mag ich auch nicht weiter darüber nachdenken...
Gast #6996742
Lesenswert?

So hier ein Beispiel:
1
import socket
2
import sys
3
import ipaddress
4
import re
5
import time
6
import paho.mqtt.client as mqtt
7
import uuid
8
import binascii
9
from random import *
10
from datetime import datetime
11

12
IP_ADDRESS = "xxx.xxx.xxx.xxx"
13
PORT = 30100
14

15
def write_data_to_textfile(txt): 
16
     with open('test.txt','w') as f: 
17
         f.write(txt) 
18

19
def on_connect(client, userdata, flags, rc):
20
    print("Connected with result code " + str(rc) + "\n")
21

22
def on_message(client, userdata, msg):
23
    print("Msg recieved from others: "+ message.payload.decode()  + " TIMESTAMP: " + str(time))
24

25
def on_message_from_udp_port_40302(client, userdata, message):
26
    time = datetime.now()
27
    write_data_to_textfile("Test"))
28
    print("\nData " + message.payload.decode() + " TIMESTAMP: " + str(time))
29

30
client = mqtt.Client()
31
client.on_connect = on_connect
32
client.on_message = on_message
33

34
client.connect(IP_ADDRESS, PORT, 60)
35

36
client.subscribe("test", qos=1)
37

38
client.message_callback_add("test", on_message)
39

40
client.loop_forever()
Gast #6996746
Lesenswert?

Hab ein Fehler gesehen. Hier die korrigierte Version:
1
import socket
2
import sys
3
import ipaddress
4
import re
5
import time
6
import paho.mqtt.client as mqtt
7
import uuid
8
import binascii
9
from random import *
10
from datetime import datetime
11

12
IP_ADDRESS = "xxx.xxx.xxx.xxx"
13
PORT = 30100
14

15
def write_data_to_textfile(txt): 
16
     with open('test.txt','w') as f: 
17
         f.write(txt) 
18

19
def on_connect(client, userdata, flags, rc):
20
    print("Connected with result code " + str(rc) + "\n")
21

22
def on_message(client, userdata, msg):
23
    print("Msg recieved from others: "+ message.payload.decode()  + " TIMESTAMP: " + str(time))
24

25
def on_message_test(client, userdata, message):
26
    time = datetime.now()
27
    write_data_to_textfile("Test"))
28
    print("\nData " + message.payload.decode() + " TIMESTAMP: " + str(time))
29

30
client = mqtt.Client()
31
client.on_connect = on_connect
32
client.on_message = on_message
33

34
client.connect(IP_ADDRESS, PORT, 60)
35

36
client.subscribe("test", qos=1)
37

38
client.message_callback_add("test", on_message_test)
39

40
client.loop_forever()
#6996752
Lesenswert?

Mike schrieb:
1
def func():
2
  test = test + 1

In Python bedeuted obiges: Lese den Wert zum Namen(Symbol) "test" aus 
dem Namensräumen "Lokal" oder "Global", addiere 1 und legen der Wert 
unter **lokalen** Namen "Test" ab.

Was Du willst ist:
1
def func():
2
  global test
3
  test = test + 1

Und das bedeutet: Lese den Wert zum Namen "test" aus dem Namensraum 
"Global", addiere 1 und legen der Wert unter **globalen** Namen "test" 
ab.
Gast #6996779
Lesenswert?

Beispiel Datei schreiben:
1
class FileOperations:
2
    def open_file(self):
3
        self.file = open('test.txt', 'r+')
4

5
    def write_file(self):
6
        self.file.write("Test") 
7

8
Benutzung:
9
    fileHandler = FileOperations()
10
    fileHandler.open_file()
11
    fileHandler.write_file()

Allerdings weiß ich hier nicht wie ich da ein Text von außen zuweisen 
kann.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren