2

Windows7でiTunesCOMインターフェイスを使用しています。iTunes.CurrentTrack.AddArtworkFromFile(path)メソッドでは、パスのタイプがBSTRである必要があります。

いくつかの調査から、BSTRは基本的な文字列を意味するC ++ /VisualBasicデータ型であることがわかりました。

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、None、None、None、0、-2147467259)、None)

4

1 に答える 1

3

Python 2.xを使用しているので、残りは使用するのunicodeではなく、str単に使用する必要があると思います。しかし、私はあなたのために自動的に変換することを期待してwin32comいました。win32comstrunicode

次のように書く必要があります。

iTunes.CurrentTrack.AddArtworkFromFile(u'file://localhost/C:/Users/ArchAngel/Desktop/a.png')

これがうまくいかない場合、あなたの問題は他の場所にあると思います。

于 2011-10-10T08:21:55.437 に答える