op 14-05-14 18:24, Akira Li schreef: > Antoon Pardon <antoon.par...@rece.vub.ac.be> writes: > >> This is the code I run (python 3.3) >> >> host = ... >> user = ... >> passwd = ... >> >> from ftplib import FTP >> >> ftp = FTP(host, user, passwd) >> ftp.mkd(b'NewDir') >> ftp.rmd(b'NewDir') >> >> This is the traceback >> >> Traceback (most recent call last): >> File "ftp-problem", line 9, in <module> >> ftp.mkd(b'NewDir') >> File "/usr/lib/python3.3/ftplib.py", line 612, in mkd >> resp = self.voidcmd('MKD ' + dirname) >> TypeError: Can't convert 'bytes' object to str implicitly >> >> The problem is that I do something like this in a backup program. >> I don't know the locales that other people use. So I manipulate >> all file and directory names as bytes. >> >> Am I doing something wrong? > > The error message shows that ftplib expects a string here, not bytes. > You could use `ftp.mkd(some_bytes.decode(ftp.encoding))` as a > workaround.
Sure but what I like to know: Can this be considered a failing of ftplib. Since python3 generally allows paths to be strings as well as bytes can't we expect the same of ftplib? Especially as I assume that path will be converted to bytes anyway in order to send it over the network. -- Antoon Pardon. -- https://mail.python.org/mailman/listinfo/python-list