在Python中使用.replace方法对文本进行切片
我将学习字符串索引、切片和替换方法的工作原理,这就是我在这段代码中使用的方法 我能够删除此链接中的前41个字符在Python中使用.replace方法对文本进行切片,python,tkinter,Python,Tkinter,我将学习字符串索引、切片和替换方法的工作原理,这就是我在这段代码中使用的方法 我能够删除此链接中的前41个字符http://urlshortener.io/s/1234abc/?s=https%3A%2F%2Fexample.com%2Fsome_contents%2F。结果呢 代码如下: from tkinter import * window = Tk() window.title("URL Slicer") window.geometry('525x100') lbl = Lab
http://urlshortener.io/s/1234abc/?s=https%3A%2F%2Fexample.com%2Fsome_contents%2F
。结果呢
代码如下:
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()
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()
但是,我仍然希望删除那些“%2F”,因此我添加了。替换方法:
代码如下:
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()
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_contents/Python不是“就地”方法;相反,它返回一个副本。因此,您需要为存储结果的操作重新分配变量:
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/
在您的示例中,都设置了X='(只有一个链接可以被切片)。我想在“txt=Entry(window,width=75)”中粘贴多个相同类型的不同链接,然后单击开始按钮。使用函数和列表理解(或
map
)将函数应用于输入序列。我从未使用过tkinter
,但我认为您面临的问题并非特定于tkinter
。