Python字符串编码-文件名

发布于 2024-12-12 06:54:12 字数 277 浏览 0 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

阿楠 2024-12-19 06:54:12

您发布的上下文太少,无法给出像样的答案,但无论如何我都会尝试。

您尝试创建的文件名似乎包含非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 with unicode 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文