Seite 1 von 1
Python (3): Leerzeichen in einem String ersetzen
Verfasst: Montag 29. Oktober 2012, 14:16
von xvzf
Hallo,
Ich hab jetzt mal angefangen mich mit Python3 zu beschäftigen, um doch
noch eine Scriptsprache zu lernen

Jetzt möchte ich ein Programm schreiben, dass im Internet (Google) nach
einem Begriff sucht:
Wenn ich Chrome im Terminal aufrufe um einen link zu öffnen muss ich das
so machen:
Code: Alles auswählen
chromium http://www.google.de/search?q=test%20mit%20leerzeichen
Das möchte ich mit python umsetzen.
mit
kann man ja ein framework implentieren, das die Schnittstelle zum
Betriebssystem darstellt.
Jetzt meine eigentliche Frage:
Wie kann ich einen string "dies ist ein test" in
"dies%20ist%20ein%20test" umwandeln, um es an chromium zu übergeben?
Danke Schonmal!!
Re: Python (3): Leerzeichen in einem String ersetzen
Verfasst: Montag 29. Oktober 2012, 14:29
von JonasR
Hey und willkommen im Forum
Schau dir mal urllib an, ich denke das ist genau was du suchst.
http://docs.python.org/3/library/urllib ... arse.quote
Übrigens öffne externe Programme lieber mit subprocess.popen als mit dem os modul.
http://docs.python.org/3/library/subpro ... cess.Popen
Re: Python (3): Leerzeichen in einem String ersetzen
Verfasst: Montag 29. Oktober 2012, 14:30
von gardiac2002
Schau dir mal die Stringfunktionen an:
http://www.tutorialspoint.com/python/python_strings.htm
Code: Alles auswählen
'das ist dein String'.replace('muster', 'ersatz_zeichen')
Die Übergabe an Chrome würde ich per Terminal lösen, siehe:
http://docs.python.org/2/library/subprocess.html zum Beispiel:
Code: Alles auswählen
subprocess.call(['chromium-browser', '--weitere-Optionen'])
Re: Python (3): Leerzeichen in einem String ersetzen
Verfasst: Montag 29. Oktober 2012, 14:37
von xvzf
Super, Danke Leute!!
Ich was ist der Unterschied zwischen os und subprocess??
LG Matthias
Re: Python (3): Leerzeichen in einem String ersetzen
Verfasst: Montag 29. Oktober 2012, 14:52
von xvzf
Hab jetzt einen anderen Teil meines Programms umzuschreiben und bekomme folgende Fehlermeldung:
Code: Alles auswählen
def aufnehmen(zeit):
flags = zeit + ' ' + 'eingabe'
# Aufnehmen in Datei eingabe.flac
subprocess.popen(['./record', flags])
return 0
Traceback (most recent call last):
File "javis", line 33, in <module>
aufnehmen()
TypeError: aufnehmen() missing 1 required positional argument: 'zeit'
Re: Python (3): Leerzeichen in einem String ersetzen
Verfasst: Montag 29. Oktober 2012, 14:53
von cofi
Das eine ist ein Apfel, das andere eine Birne.
Spass bei seite: Schau dir die Dokumentation an. `os` bietet in Hinblick auf externe Programme das mindeste und `subprocess` ist - wie der Name schon sagt - darauf spezialisiert und bietet ein komfortableres (und maechtigeres) Interface.
Was dein neues Problem angeht: Funktionen, die ein Argument erwarten, muss man eben auch mit einem aufrufen.
Und ich glaube du willst eigentlich (neben `Popen` statt `popen`)
verwenden. `Popen` will eine Liste von Argumenten, der Aufruf sieht _nicht_ wie in einer Shell aus.
Re: Python (3): Leerzeichen in einem String ersetzen
Verfasst: Montag 29. Oktober 2012, 14:56
von xvzf
Eine Idee wegen der Fehlermeldung?
Re: Python (3): Leerzeichen in einem String ersetzen
Verfasst: Montag 29. Oktober 2012, 14:59
von gardiac2002
Schau dir die Fehlermeldung an. Da ist das Problem meistens sehr genau beschrieben.
-> aufnehmen() missing 1 required positional argument: 'zeit'
Deiner Funktion fehlt ein Parameter.
Re: Python (3): Leerzeichen in einem String ersetzen
Verfasst: Montag 29. Oktober 2012, 15:04
von xvzf
argh, okay, hab was übersehen, sry Leute..
Re: Python (3): Leerzeichen in einem String ersetzen
Verfasst: Montag 29. Oktober 2012, 15:08
von xvzf
Hab noch eine Frage (bevor ich jetzt google, ihr seit besser

):
Kann ich einen Teil des Strings "erkennen" und den Rest der dahinter steht in einen neuen String kopieren?
Also z.B.
"Suche nach ..." in "..."
??
Danke!
Re: Python (3): Leerzeichen in einem String ersetzen
Verfasst: Montag 29. Oktober 2012, 15:11
von BlackJack
@xvzf: Lies doch bitte die Dokumentation von Python. Welche Operationen und Methoden mit Zeichenketten möglich sind.
Re: Python (3): Leerzeichen in einem String ersetzen
Verfasst: Montag 29. Oktober 2012, 15:20
von xvzf
Okay Okay

Dann fang ich mal an, ich programmier eigentlich in C, will aber versch. Programme miteinander verbinden