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.
Bonio03
User
Beiträge: 2 Registriert: Sonntag 30. April 2017, 19:13
Sonntag 30. April 2017, 19:17
Hallo, ich habe folgende Code:
Code: Alles auswählen
file=open('./log.txt', 'w+')
while True:
tut was
if XXXX :
tut was
if YYYY :
print ' abc ' + kA + ' def ' + kA2 #Ausgabe kommt zB. 50 mal
file.write(' abc ' + kA + ' def ' + kA2 + ' \n ')
Ich möchte alle Ausgaben ins Datei rein, aber es speichert nur eine.
Vielen dank für Ihre Hilfe.
Zuletzt geändert von Anonymous am Sonntag 30. April 2017, 22:04, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Sirius3
User
Beiträge: 17741 Registriert: Sonntag 21. Oktober 2012, 17:20
Sonntag 30. April 2017, 20:04
@Bonio03: das kann nicht sein, da Du für jedes print auch ein write ausführst. Wie sieht Dein wirklicher Code aus?
Bonio03
User
Beiträge: 2 Registriert: Sonntag 30. April 2017, 19:13
Sonntag 30. April 2017, 20:11
Code: Alles auswählen
#Detei oeffnen und rein schreiben
file=open('./log.txt', 'w+')
# receive a packet
while True:
packet = s.recvfrom(65565)
#packet string from tuple
packet = packet[0]
#parse ethernet header
eth_length = 14
eth_header = packet[:eth_length]
eth = unpack('!6s6sH' , eth_header)
eth_protocol = socket.ntohs(eth[2])
#Parse IP packets, IP Protocol number = 8
if eth_protocol == 8 :
#Parse IP header
#take first 20 characters for the ip header
ip_header = packet[eth_length:20+eth_length]
#now unpack them :)
iph = unpack('!BBHHHBBH4s4s' , ip_header)
version_ihl = iph[0]
version = version_ihl >> 4
ihl = version_ihl & 0xF
iph_length = ihl * 4
ttl = iph[5]
protocol = iph[6]
s_addr = socket.inet_ntoa(iph[8]);
d_addr = socket.inet_ntoa(iph[9]);
NurOutgoing = re.search(ip, s_addr)
if NurOutgoing is not None:
print ' Source Address : ' + str(s_addr) + ' Destination Address : ' + str(d_addr)
#Was schreiben wir ins Detei
file.write('Source Address : ' + str(s_addr) + ' Destination Address : ' + str(d_addr) + '\n')
Zuletzt geändert von Anonymous am Sonntag 30. April 2017, 22:06, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack
Sonntag 30. April 2017, 22:09
@Bonio03: Der Dateimodus 'w+' macht hier keinen Sinn und ist sogar falsch würde ich mal behaupten.
Ansonsten gilt für diesen Code immer noch was Sirius3 geschrieben hat.