str(file.key)='1011/101011 / file_name'
newFileName = str(file.key)
但是,当我运行代码时,我得到:
UnicodeEncodeError:'ascii'编解码器无法对位置x-y中的字符进行编码:序号不在范围内(128)
我需要对文件名进行一些解析,然后从s3服务器下载它 . 我如何得到'file_name'?
你已经发布了很少的背景来给出一个体面的答案,但无论如何我都会尝试 .
您尝试创建的文件名似乎包含非ascii字符,这些字符无法在python 2.x中自动转换为标准str .
如果将 str 替换为 unicode ,则可以完全避免转换 . 如果代码的其他部分要求您使用str,您可以尝试对其进行编码: newFileName = unicode(file.key).encode('ascii', 'ignore') . 请注意,在我的示例中将省略不可转换的字符 .
str
unicode
newFileName = unicode(file.key).encode('ascii', 'ignore')
1 回答
你已经发布了很少的背景来给出一个体面的答案,但无论如何我都会尝试 .
您尝试创建的文件名似乎包含非ascii字符,这些字符无法在python 2.x中自动转换为标准str .
如果将
str
替换为unicode
,则可以完全避免转换 . 如果代码的其他部分要求您使用str,您可以尝试对其进行编码:newFileName = unicode(file.key).encode('ascii', 'ignore')
. 请注意,在我的示例中将省略不可转换的字符 .