我为google Picasa服务编写了一个简单的客户端。我想要的是创建一个带有相册标题名称的文件夹,并将原始照片从服务下载到此文件夹。 如果标题中有任何非拉丁字符,我会得到一个IOError:
IOError: [Errno 2] No such file or directory: '\xd0\x9e\xd1\x81\xd0\xb5\xd0\xbd\xd1\x8c\Autumnal-Equinox.jpg'
代码示例:
import gdata.photos.service
import gdata.media
import os
import urllib2
gd_client = gdata.photos.service.PhotosService()
username = 'cha.com.ua'
albums = gd_client.GetUserFeed(user=username)
for album in albums.entry:
photos = gd_client.GetFeed(
'/data/feed/api/user/%s/albumid/%s?kind=photo' % (
username, album.gphoto_id.text))
for photo in photos.entry:
destination = os.path.join(album.title.text, photo.title.text)
out = open(destination, 'wb')
out.write(urllib2.urlopen(photo.content.src).read())
out.close()
我试着用.decode('utf-8')
来解码标题,但没用。在
你说:
以及
^{pr2}$这不可能是真的。如果第一个陈述是正确的,第二个陈述将导致:
您的
str
对象似乎是UTF-8编码的西里尔字符串:此外,上述内容与错误消息中的文本非常不同:'\xd0\x9e\xd1\x81\xd0\xb5\xd0\xbd\xd1\x8c\Autumnal-春分点.jpg'
反斜杠表示您正在Windows上运行。Windows就是不能使用UTF-8。输入时将所有文本转换为Unicode。对所有路径和文件名使用Unicode。一个简单的例子:
相关问题 更多 >
编程相关推荐