[Python] Zeichen aus string entfernen

Hersfeld

Moderator
Mitarbeiter
Team
Mitglied seit
10 Juni 2011
Beiträge
2.646
Danke
110
#1
Ich versuche mich gerade an einem kleinen Python Programm, das mit meine aktuelle public IP ausgeben soll. Die IP bekomme ich als Liste aber für die Ausgabe würde ich gerne die [' am Anfang und '] am Ende entfernen.

Mit den beiden .translate habe ich es schon versucht, die haben aber nicht zum Ziel geführt. Die Ausgabe lautet immer:
Code:
Your public IP address is  ['XXX.XXX.XXX.XXX']
Code:
# import required packages
import requests
import re
# import credentials and config for your mail server from the 'MailConfig' file
# setup where from to receive the public ip address
url = 'http://checkip.dyndns.org'
# open the url and get the content
request = requests.get(url).text
# extract only the ip from the request
ipFromRequest = re.findall("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", request)
# remove [''] from IP
yourIP = str(ipFromRequest).translate('', '[]')
yourIP = str(ipFromRequest).translate(None, '[]')
print ("Your public IP address is ", yourIP)
 

Hersfeld

Moderator
Mitarbeiter
Team
Mitglied seit
10 Juni 2011
Beiträge
2.646
Danke
110
#2
Mit ein bisschen mehr probieren habe ich es dann doch geschafft:

Code:
ipFromRequest = re.findall("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", request)
# remove [''] from IP
type(ipFromRequest)
yourIP = str(".".join(ipFromRequest))
type(yourIP)
print ("Your public IP address is", yourIP)
 

NJay

Moderator
Mitarbeiter
Team
Mitglied seit
19 März 2012
Beiträge
5.379
Danke
311
#3
Auch gegangen ware die replace funktion. Mit der kannst du beliebige stringanteile durch einen anderen (und eben auch den leeren string) ersetzen.
 

kingspride

Moderator
Mitarbeiter
Team
Mitglied seit
30 Juni 2010
Beiträge
16.774
Danke
1.035
#4
wenn du sagst du bekommst es als Liste, hätte vermutlich schon
Python:
ipFromRequest[0]
gereicht?
 
Oben