Python字符串编码 - 文件名

-5 投票
1 回答
726 浏览
提问于 2025-04-17 05:08

str(file.key) 的值是 '1011/101011/file_name'

newFileName = str(file.key)

但是,当我运行代码时,我遇到了这个错误:

UnicodeEncodeError: 'ascii' 编码无法在位置 x-y 编码字符:序号不在范围 128 内

我需要对文件名进行一些处理,然后从 s3 服务器下载这个文件。我该怎么才能只得到 'file_name' 呢?

1 个回答

2

你提供的信息太少了,没法给出一个好的答案,但我还是试试看。

你想创建的文件名里似乎包含了一些非ASCII字符,这些字符在Python 2.x中不能自动转换成标准的字符串。

如果你把 str 替换成 unicode,就可以完全避免转换的问题。如果你代码的其他部分需要用到字符串,你可以试试这样编码:newFileName = unicode(file.key).encode('ascii', 'ignore')。注意,我这个例子中无法转换的字符会被忽略掉。

撰写回答