首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python语言中使用.replace方法进行文本切片

在Python语言中使用.replace方法进行文本切片
EN

Stack Overflow用户
提问于 2018-07-28 17:49:40
回答 1查看 207关注 0票数 0

我学习了字符串索引、切片和替换方法是如何工作的,这也是我在这段代码中使用的方法。

我能够删除这个链接http://urlshortener.io/s/1234abc/?s=https%3A%2F%2Fexample.com%2Fsome_contents%2F中的前41个字符。对结果执行Here's命令。

代码如下:

代码语言:javascript
复制
 from tkinter import *
 window = Tk()
 window.title("URL Slicer")
 window.geometry('525x100')
 lbl = Label(window, text="URL")
 lbl.grid(column=0, row=0)
 txt = Entry(window,width=75)
 txt.grid(column=1, row=0)

 def clicked():
    sliced = txt.get()
    lbl.configure(text= sliced[41:])

btn = Button(window, text="Start", command=clicked)
btn.grid(column=2, row=0)
window.mainloop()

但是,我仍然想摆脱那些"%2F“,所以我添加了.replace方法:

代码如下:

代码语言:javascript
复制
from tkinter import *
 window = Tk()
 window.title("URL Slicer")
 window.geometry('525x100')
 lbl = Label(window, text="URL")
 lbl.grid(column=0, row=0)
 txt = Entry(window,width=75)
 txt.grid(column=1, row=0)

 def clicked():
     sliced = txt.get()
     sliced.replace('%2F', '/')  //added .replace
     lbl.configure(text= sliced[41:])

 btn = Button(window, text="Start", command=clicked)
 btn.grid(column=2, row=0)
 window.mainloop()

(但第二个代码的结果与第一个代码相同)

链接应该是:example.com/some_content/

EN

回答 1

Stack Overflow用户

发布于 2018-07-28 17:53:37

Python的str.replace不是“就地”方法;相反,它返回一个副本。因此,您需要重新赋值给您的变量,以便操作存储您的结果:

代码语言:javascript
复制
x = 'http://urlshortener.io/s/1234abc/?s=https%3A%2F%2Fexample.com%2Fsome_contents%2F'    
x = x.replace('%2F', '/')

print(x)

http://urlshortener.io/s/1234abc/?s=https%3A//example.com/some_contents/

更好的解决方案是使用专门构建的urllib

代码语言:javascript
复制
from urllib import parse

x = 'http://urlshortener.io/s/1234abc/?s=https%3A%2F%2Fexample.com%2Fsome_contents%2F'

x = parse.unquote(x)

print(x)

http://urlshortener.io/s/1234abc/?s=https://example.com/some_contents/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51570116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档