gpt4 book ai didi

python - 如何从 Tkinter 条目小部件获取字节数组

转载 作者:太空宇宙 更新时间:2023-11-04 04:12:42 25 4
gpt4 key购买 nike

我需要一个工具来向不需要可打印字符的 telnet 设备发出命令,例如回车和换行。在 python 本身中,这是通过类似以下内容实现的....

myDevice.send(b'command\n\r')

这将导致向设备发送 9 个字节。

我想将这样的字符串输入到 Tkinter 输入框中。然而,Tk 输入框似乎太聪明了,它避开了\,所以每当我引入\r\n 或\x0a 等时,我总是得到\\。换句话说,它总是可打印的。

我一直在不断地尝试将结果字符串渲染成我需要的东西,但并不快乐。我在下面提供了一个小示例来说明问题。

from tkinter import *

def show_entry_fields():
print(e1.get().encode())

def show_string():
myString = b'hello\n'
print(myString)

master = Tk()
Label(master, text="Enter string with \\n").grid(row=0)

e1 = Entry(master)
e1.insert(10,"enter with escape char")

e1.grid(row=0, column=2)

Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Show Entry', command=show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)
Button(master, text='Show myString', command=show_string).grid(row=3, column=2, sticky=W, pady=4)

mainloop( )

在 tk 输入框中输入了以下内容:'你好\n'

打印出来的是这样的:b'你好\\n'

我真正想看到的是:b'你好\n'

一旦发送到设备就变成了 6 个字节。

最佳答案

以下适用于所有字符,包括 \n\r\t\x00 -\xff

print(e1.get().encode('latin-1').decode('unicode_escape').encode('latin-1'))

关于python - 如何从 Tkinter 条目小部件获取字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56055792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com