我想从中读取一个十六进制PersistentID
字符串ItunesMusicLibrary.xml
,得到两个ints
代表高 32 位和低 32 位,然后ints
在 iTunes 脚本中使用这两个。
不幸的是,PersistentID
in 中的字符串ItunesMusicLibrary.xml
似乎与PersistentID
iTunes 中的不同,可通过各种脚本接口访问
iTunes 音乐library.xml
包括一个 64 位密钥,PersistentID
. 例如,
<key>Persistent ID</key><string>0F1610959DA92DAB</string>.
您还可以PersistentID
使用 Windows COM 接口通过脚本获取。例如,
iTunes.ITObjectPersistentIDHigh(track) -> 253104277
iTunes.ITObjectPersistentIDLow(track) -> -1649857109
如果我将这两个数字反馈到 iTunes,我会得到正确的曲目
iTunes.LibraryPlaylist.Tracks.ItemByPersistentID(253104277,-1649857109).Name
我的问题是将 xml 库中的十六进制字符串转换为高整数和低整数
例如,在 python
int('0F1610959DA92DAB'[:8], 16) -> 253104277
int('0F1610959DA92DAB'[8:], 16) -> 2645110187
第一个是正确的,第二个是不正确的。如果我将这两个值反馈回 iTunes,它就不起作用。使用其他曲目,有时两个数字都是错误的。
知道发生了什么以及如何解决它吗?