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

Code: Alles auswählen

import os
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`)

Code: Alles auswählen

subprocess.Popen(['./record', zeit, 'eingabe'])
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