我学习了字符串索引、切片和替换方法是如何工作的,这也是我在这段代码中使用的方法。
我能够删除这个链接http://urlshortener.io/s/1234abc/?s=https%3A%2F%2Fexample.com%2Fsome_contents%2F
中的前41个字符。对结果执行Here's命令。
代码如下:
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方法:
代码如下:
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/
发布于 2018-07-28 17:53:37
Python的str.replace
不是“就地”方法;相反,它返回一个副本。因此,您需要重新赋值给您的变量,以便操作存储您的结果:
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
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/
https://stackoverflow.com/questions/51570116
复制相似问题