小编use*_*577的帖子

能够删除具有特定对象标签 tkinter 的所有项目

我在 tkinter 画布中有几个不同的对象标签。我希望用户能够删除带有标记的鼠标光标下的当前对象"token"

我不希望"token"删除带有标记的所有对象,只删除鼠标光标下的对象。我希望"token"能够删除带有标记的任何对象。我想禁止删除带有标签的对象"line"。我试过了:

self.canvas.delete("current")
Run Code Online (Sandbox Code Playgroud)

但这允许我删除鼠标光标下的任何内容(包括线对象)。当我尝试

self.canvas.delete("token")
Run Code Online (Sandbox Code Playgroud)

这让我可以"token"一次性删除所有带有标签的项目。以下是我的线对象、"token"对象和删除函数的定义摘录:

 # create static line
    self.canvas.create_line(50,250,200,250, width=7, fill="grey", tags="line")

 #Create oval
 myoval = self.canvas.create_oval(x0,y0,x1,y1, width=10, outline="black", fill="black",
                                  tags="token")


 def on_button_press_deleteoval(self,event):
    '''Delete oval with double button 1 click.'''
    self.canvas.delete("current")
Run Code Online (Sandbox Code Playgroud)

python tkinter tkinter-canvas

7
推荐指数
1
解决办法
3347
查看次数

删除2个匹配模式之间的n行,键入第一个匹配并删除第二个匹配

给定文本文件中的数据:

string1 EP00 37.45 83.83 
save
save
save
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
string2

gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
gibberish
Run Code Online (Sandbox Code Playgroud)

我想使用sedawk匹配string1和string 2,然后删除之后string1的所有内容和前3行.我想删除它string2,但不是string1.并删除该文件与下一文本之间的一行.所以预期的产量是:

string1 EP00 37.45 83.83 
save
save
save
Run Code Online (Sandbox Code Playgroud)

如果这有助于(16),则两个模式之间总有相同数量的行.我想用sed或执行此操作awk,但只能找出一个脚本来删除两者之间的整个数据块,并保留两个字符串:

sed '/string1/,/string2/{//!d}' file >> tr.txt
Run Code Online (Sandbox Code Playgroud)

有谁知道如何指定保留string1它后面的三行并删除两个模式之间的其余行包括string2?我想用sedawk更容易做到这一点.

谢谢!

regex bash awk sed

3
推荐指数
1
解决办法
857
查看次数

标签 统计

awk ×1

bash ×1

python ×1

regex ×1

sed ×1

tkinter ×1

tkinter-canvas ×1