Diese Meldung heißt übersetzt so viel wie: "Avast taugt - wie alle anderen Antivirenprogramme auch - überhaupt nichts, und muss mithilfe von Drückermethoden jeden Pups so weit aufblähen, damit naive Leute für diesen Müll auch noch Geld ausgeben" :)

...zur Antwort

Also nehmen wir mal an, du hast eine Smiley-Datenbank in Form einer Textdatei, mit folgendem Inhalt:

😀 smiley
😁 happy
😇 angel
😈 devil
😞 sad
😠 angry
😮 oh
😱 munch
😴 sleep

(Ich weiß, es gibt noch viel mehr, aber das soll jetzt nur ein Beispiel sein!)

Dann kannst du mit folgendem Codeschnipsel Smileys durch Textrepräsentation und umgekehrt in einem Text ersetzen:

import codecs

smiley_text = {}
text_smiley = {}

with codecs.open('smileys.txt', 'r', 'utf-8', 'strict') as fh:
	for line in fh:
		if ' ' not in line:
			continue

		smiley, text = line.strip().split(' ', 1)
		text = ':%s:' % text

		smiley_text[smiley] = text
		text_smiley[text] = smiley

message = '''
Das ist das Haus, vom Nikolaus. :happy:
Und das nebenan, vom Weihnachtsmann. :smiley:
'''.strip()

print('ORIGINAL:\n%s' % message)

for text, smiley in text_smiley.items():
	if text in message:
		message = message.replace(text, smiley)

print('REPLACE A:\n%s' % message)

for smiley, text in smiley_text.items():
	if smiley in message:
		message = message.replace(smiley, text)

print('REPLACE B:\n%s' % message)

Damit erhältst du folgende Ausgabe:

ORIGINAL:
Das ist das Haus, vom Nikolaus. :happy:
Und das nebenan, vom Weihnachtsmann. :smiley:

REPLACE A:
Das ist das Haus, vom Nikolaus. 😁
Und das nebenan, vom Weihnachtsmann. 😀

REPLACE B:
Das ist das Haus, vom Nikolaus. :happy:
Und das nebenan, vom Weihnachtsmann. :smiley:

Wie du siehst, funktioniert die Ersetzung damit recht einfach. Die entsprechende Funktionalität musst du dir natürlich noch selber in eine Klasse oder schicke Funktionen verpacken, aber so siehst du erst mal, wie das im Großen und Ganzen funktioniert.

Disclaimer: Ich weiß, dass der Code nicht allzu optimal ist, aber da er möglichst auch für Anfänger ohne große Vorkenntnisse verständlich sein soll, will ich jetzt nicht übertreiben.

Aus Effizienzgründen würde ich normalerweise mit einem Iterator über "message" gehen, aber das würde den Code deutlich vergrößern.

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.