MitHilfe einer Schleife sollen die Zahlen raufzählen

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Paraya21
User
Beiträge: 14
Registriert: Donnerstag 23. Juni 2016, 14:54

Ich habe eine Datei "mains.txt" und in der Zeile 6 steht immer dasselbe drinnen. Habe erfahren, dass es nicht praktikabel ist, aber das sei mal daheingestellt. Und aus der Zeile 6 wird der Inhalt: Title: <Tagname, was ich drauf gespeichert habe> z.b. Title: Schachtel.
Und dieser Inhalt wird wenn er doppelt vorkommen sollte, mit einer Zahl davor gekennzeichnet, die aufwärts gehen soll.(mehr unter dem code)
Und Inhalt, welcher zum ersten Mal erscheint, wird durch else ganz normal ausgebeben.

Code: Alles auswählen

#!/usr/bin/python
# coding=utf-8

with open("mains.txt") as rfile:
	lines = rfile.readlines() [5]

f2 = open("NewFile", 'a')
f1 = open("NewFile", "r")
text = f1.read()

i = 2

if lines in text:
	f2.write(str(i) + ":"+ lines)
	i = i + 1
else:
	f2.write(lines + '\n')
Die Ausgabe davon nach 3 maligem ausführen:
Title: Schachtel
2: Title: Schachtel
2: Title: Schachtel

Ausgabe davon nach 6 maligem Ausführen: (3mal ein Tag, 3 mal ein anderer Tag)
Title: Schachtel
2: Title: Schachtel
2: Title: Schachtel
Title: Dosenöffner
2: Title: Dosenöffner
2: Title: Dosenöffner

Ich möchte gerne, dass die Zahl größer wird und bei 2 eben anfängt, weil ja eine Schachtel am Anfang ja schon da ist.
Schaut blöd aus wenn da steht:
Title: Schachtel
1: Title: Schachtel
1: Title: Schachtel

Habe es schon mit einer for schleife ausprobiert, aber nichts will klappen. Hat wer eine Idee? Am besten eine veranschaulichte <3
BlackJack

@Paraya21: Hast Du jetzt ein neues Thema aufgemacht in der Hoffnung das wir die ganzen Anmerkungen und Hinweise vom letzten Thema zum gleichen Problem vergessen haben, weil Du anscheinend nichts davon umsetzen möchtest und unbeirrt versuchen möchtest das ohne Python zu lernen in Python zu programmieren‽

Es bleibt weiterhin dabei das die ”magische” 5 keine gute Idee ist, ich würde sogar sagen ein Fehler im Programm, dass das 'Title: ' da nur drin ist, weil Du Dich anscheinend nicht damit auseinandersetzen möchtest und nicht weil das irgend einen Sinn ergäbe, und das eine sinnvolle Aufteilung des Problems in Teilprobleme, die jeweils mit Funktionen gelöst werden sollten, angebracht ist. Und Sachen die selbst in diesem Quelltext einfach zu ändern gewesen wären, wie die falschen und schlechten Namen und das nicht schliessen von Dateien, hast Du auch ignoriert. :-(

Hier kommt jetzt noch dazu dass das gewünschte Dateiformat unregelmässig wäre, was man vermeiden sollte, denn unregelmässige Datenstrukturen erfordern mehr Code der sich um die Sonderfälle kümmern muss. Ein Datum sollte *immer* aus Anzahl und Name bestehen, und nicht nur wenn die Anzahl grösser als 1 ist. Denn nur dann kann man im Code jedes Datum gleich behandeln, eben als Paar aus Anzahl und Name.
Paraya21
User
Beiträge: 14
Registriert: Donnerstag 23. Juni 2016, 14:54

Ich habe mich damit auseinandergesetzt, aber diese Probleme sind momentan für mich nicht im Vordergrund oder von der Prio her nicht so hoch.
Außerdem verstehe ich etwas von python, wenn ich python beherrschen würde, würde ich ja hier nicht nach Hilfe fragen oder?
BlackJack

@Paraya21: Du verstehst vielleicht etwas von Python, aber nach dem was Du zeigst, nicht genug um das vorliegende Problem zu lösen. Wenn Deine Priorität nicht ist, ein angemessen robustes, sinnvoll strukturiertes Programm zu schreiben, das mit sinnvoll strukturierten Daten, intern sowie extern, arbeitet, dann weiss ich nicht wie man Dir helfen soll. Gute Namen und ein strukturiertes Programm und Daten sind sehr wichtig beim Programmieren. Das macht Programmieren aus!
Antworten