私はこれを間違っているに違いありません。
s.sendall((str("mkd /" + folder.decode() + "/New Folder/ \r\n")).encode())
これを書くためのより良い方法はありますか?
私はこれを間違っているに違いありません。
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
がbytesオブジェクトの場合、utf-8としてエンコードされるfolder.decode()
保証がないため、盲目的に使用しないでください。それをデコードするために使用できるfolder
かどうかは、どこから来たかによって異なります。os.fsdecode()
folder