带有变量和encode()的Python sendall

2024-04-25 13:04:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我一定是做错了。在

s.sendall((str("mkd /" + folder.decode() + "/New Folder/ \r\n")).encode())

有没有更好的方式来写这个?在


Tags: new方式folderencodedecodestrsendallmkd
1条回答
网友
1楼 · 发布于 2024-04-25 13:04:40
s.sendall(b"mkd '/" + folder + b"/New Folder/'\r\n")

下面是一个更健壮的版本,它使用了python3.3中的shlex.quote()(在较早的Python版本上使用pipes.quote()):

^{pr2}$

后者假设folder是Unicode字符串。如果folder是一个bytes对象,那么您不应该盲目地使用folder.decode(),因为不能保证folder被编码为utf-8。是否可以使用os.fsdecode()对其进行解码取决于folder来自何处。在

相关问题 更多 >