Python字符串编码-文件名
str(file.key) = '1011/101011/file_name'
newFileName = str(file.key)
但是,当我运行代码时,我得到:
UnicodeEncodeError:“ascii”编解码器无法对位置中的字符进行编码 xy:序数不在范围内(128)
我需要对文件名进行一些解析,然后从 s3 服务器下载它。 如何获取“file_name”?
str(file.key) = '1011/101011/file_name'
newFileName = str(file.key)
But, when I run the code i get:
UnicodeEncodeError: 'ascii' codec can't encode characters in position
x-y: ordinal not in range(128)
I need to do some parsing on the file name and then download it from s3 server.
How do I get just 'file_name'?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您发布的上下文太少,无法给出像样的答案,但无论如何我都会尝试。
您尝试创建的文件名似乎包含非ascii字符,这些字符无法自动转换为python 2.x中的标准str。
如果将
str
替换为unicode
,则可以完全避免转换的需要。如果代码的其他部分要求您使用 str,您可以尝试像这样编码:newFileName = unicode(file.key).encode('ascii', 'ignore')
。请注意,在我的示例中将省略不可转换的字符。You've posted far to little context to give a decent answer, but I'll try anyway.
The filename you are trying to create seems to contain non-ascii characters, which cannot be automatically be converted into a standard str in python 2.x.
If you replace
str
withunicode
you can avoid the need for conversion alltogether. If some other part of your code requires you to use an str, you could try to encode it like this:newFileName = unicode(file.key).encode('ascii', 'ignore')
. Note that unconvertable characters will be omitted in my example.