0
我一定是做错了。Python变量与编码sendall()
s.sendall((str("mkd /" + folder.decode() + "/New Folder/ \r\n")).encode())
有没有更好的方法来写这个?
我一定是做错了。Python变量与编码sendall()
s.sendall((str("mkd /" + folder.decode() + "/New Folder/ \r\n")).encode())
有没有更好的方法来写这个?
s.sendall(b"mkd '/" + folder + b"/New Folder/'\r\n")
下面是一个使用shlex.quote()
在Python 3.3(pipes.quote()
在老的Python版本),更强大的版本:
cmd = "mkd {}".format(shlex.quote(posixpath.join(folder, "New Folder")))
s.sendall(cmd.encode() + b"\r\n") # send as utf-8
后者假定folder
是Unicode字符串。如果folder
是一个字节对象,那么您不应该盲目地使用folder.decode()
,因为不能保证folder
被编码为utf-8。 os.fsdecode()
是否可用于解码它取决于folder
来自哪里。
明智的只是在第二个连接的字符串前添加b。你是冠军! – mb0742
sendall是否返回字符串? – Hussain
是的,但蟒蛇3要求一个字节字符串 – mb0742