【问题标题】:How to display the error page if the form does not contain a tag (.) in python如果表单在python中不包含标签(。)如何显示错误页面
【发布时间】:2021-12-24 22:02:32
【问题描述】:

这是项目

from tkinter import *
import os

window = Tk()
window.title("web2video")
window.geometry("330x140+200+100")

photo = PhotoImage(file = "icon.png")
window.iconphoto(False, photo)


urltxt = Label(window, text = "video Url").place(x = 30, y = 10)  
url = Entry(window, width=30)
url.insert(0,"")
url.grid(row=1, column=0, padx=100, pady=10)

def Message():
    if not url.get(): return
    os.system(f"echo ^<html^> > %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"echo ^<body style=\"background-color:black;\"^> >> %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"echo ^<video controls src=\"{url.get()}\" width=\"100%\" height=\"100%\" ^>^</video^> >> %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"echo ^</body^> >> %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"echo ^</html^> >> %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"start %USERPROFILE%\AppData\Local\Temp\web2video.html")

btnSendMessage = Button(window, text="Start", width=20, command=Message)
btnSendMessage.grid(row=5, column=0, padx=10, pady=10)

window.mainloop()

如果条目不包含标签.,我想关闭程序或显示错误页面

例如

这段代码是错误的,但为了澄清

def Message():
    if url.get() not "." : return
    os.system(f"echo ^<html^> > %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"echo ^<body style=\"background-color:black;\"^> >> %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"echo ^<video controls src=\"{url.get()}\" width=\"100%\" height=\"100%\" ^>^</video^> >> %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"echo ^</body^> >> %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"echo ^</html^> >> %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"start %USERPROFILE%\AppData\Local\Temp\web2video.html")

【问题讨论】:

  • if '.' not in url.get():?我认为您可能需要重复基础知识并且不要使用os.system
  • 使用subprocess 模块。避免使用 os.system。
  • 你能给我一个子流程的例子或想法吗
  • @user17293338,只要稍微搜索一下,就会出现很多subprocess 的例子。 pythonspot.com/python-subprocess
  • 其实start这样使用os.system就可以了。

标签: python tkinter subprocess os.system


【解决方案1】:

这段代码很傻:

    os.system(f"echo ^<html^> > %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"echo ^<body style=\"background-color:black;\"^> >> %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"echo ^<video controls src=\"{url.get()}\" width=\"100%\" height=\"100%\" ^>^</video^> >> %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"echo ^</body^> >> %USERPROFILE%\AppData\Local\Temp\web2video.html")
    os.system(f"echo ^</html^> >> %USERPROFILE%\AppData\Local\Temp\web2video.html")

直接做就行了,没有转义,没有额外的流程:

    name = os.environ["APPDATA"] + "/Local/Temp/web2video.html"
    with open(name, 'w') as htmlfile:
        print(f"""\
<html>
<body style="background-color:black;">
<video controls src="{url.get()}" width="100%" height="100%">
</video>
</body>
</html>""", file=htmlfile );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多