我在 Windows 7 上使用 iTunes COM 接口。方法 iTunes.CurrentTrack.AddArtworkFromFile(path) 要求路径为 BSTR 类型。
我从一些研究中了解到 BSTR 是一种 C++/Visual Basic 数据类型,表示基本字符串。
有什么方法可以将 python ascii 字符串转换为 BSTR?
代码 :
import urllib
from BeautifulSoup import BeautifulSoup
import re
import win32com.client
import sys
iTunes = win32com.client.gencache.EnsureDispatch("iTunes.Application")
cTrackName = iTunes.CurrentTrack.Name
cArtist = iTunes.CurrentTrack.Artist
cAlbum = iTunes.CurrentTrack.Album
print cAlbum + cArtist + cTrackName
url = 'http://www.last.fm/music/'+cArtist+'/'+cAlbum
albumPage = urllib.urlopen(url).read()
soup = BeautifulSoup(albumPage)
s = soup.prettify()
z = re.compile('.*<img width="174" src="(.*)" class="art" id="albumCover" itemprop="image" class="albumCover coverMega" />')
p = re.findall(z,s)
print p
urllib.urlretrieve(p[0],'a.png')
a = urllib.quote('file://localhost/C:/Users/ArchAngel/Desktop/a.png')
iTunes.CurrentTrack.AddArtworkFromFile('file://localhost/C:/Users/ArchAngel/Desktop/a.png')
#print binascii.a2b_uu('sadsaffas')
iTunes.CurrentTrack.AddArtworkFromFile(b'C:\Users\ArchAngel\Desktop\a.png')
错误:pywintypes.com_error:(-2147352567,'发生异常。',(0,无,无,无,0,-2147467259),无)