我想在Mac OS El Capitan系統上使用Python 2.7下的plistlib處理iTunes plist。問題是get('Tracks')返回3,006個值,顯然已經丟失了它們的子鍵。如果我的目標是找到並修改軌跡數據,而不是將plist寫回去,我該如何處理這個問題?由於埋在前一段中,我所需要的幫助完全是這樣的:print tracks列出了所有的子鍵值,但是不是子鍵本身。鑑於並非所有密鑰都被隔離出現,我如何檢索特定音軌的關鍵值?處理iTunes plist與3,006個鍵值爲python 2與plistlib
這裏是我的測試代碼:
import plistlib as pl
plist = pl.readPist('/Users/bryandunphy/Music/iTunes HQR/iTunes Library.xml')
tracks = pl.get('Tracks')
print tracks
這裏是我認爲的示例數據記錄包含了所有可能的子鍵(按鍵均缺席,如果他們是空字符串,虛假或數字0):
<key>2655</key>
<dict>
<key>Track ID</key><integer>2655</integer>
<key>Size</key><integer>8558199</integer>
<key>Total Time</key><integer>210120</integer>
<key>Disc Number</key><integer>1</integer>
<key>Disc Count</key><integer>2</integer>
<key>Track Number</key><integer>5</integer>
<key>Track Count</key><integer>17</integer>
<key>Date Modified</key><date>2016-12-15T02:13:07Z</date>
<key>Date Added</key><date>2016-12-14T11:32:46Z</date>
<key>Bit Rate</key><integer>320</integer>
<key>Sample Rate</key><integer>44100</integer>
<key>Persistent ID</key><string>7BD213A791587573</string>
<key>Track Type</key><string>File</string>
<key>File Type</key><integer>1295270176</integer>
<key>File Folder Count</key><integer>5</integer>
<key>Library Folder Count</key><integer>1</integer>
<key>Name</key><string>Born To Be Wild</string>
<key>Artist</key><string>Steppenwolf</string>
<key>Album Artist</key><string>Steppenwolf</string>
<key>Album</key><string>Born To Be Wild: A Retrospective</string>
<key>Genre</key><string>Rock</string>
<key>Kind</key><string>AAC audio file</string>
<key>Sort Album Artist</key><string>Steppenwolf</string>
<key>Location</key><string>file:///Users/bryandunphy/Music/iTunes%20HQR/iTunes%20Media/Music/Steppenwolf/Born%20To%20Be%20Wild_%20A%20Retrospective/1-05%20Born%20To%20Be%20Wild.m4a</string>
</dict>
上面記錄的文件的開頭是:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Major Version</key><integer>1</integer>
<key>Minor Version</key><integer>1</integer>
<key>Application Version</key><string>12.5.4.42</string>
<key>Date</key><date>2017-01-02T02:41:51Z</date>
<key>Features</key><integer>5</integer>
<key>Show Content Ratings</key><true/>
<key>Library Persistent ID</key><string>4FA8621533B66A9E</string>
<key>Tracks</key>
<dict>
您應該編輯問題以顯示您已寫入的一些代碼。你可能還想添加更多的標籤,比如普通的'python'標籤,如果有相關的標籤,可能還會添加'plistlib'標籤。 – Blckknght
我想編輯問題和標籤,但我不知道該怎麼做。 –
應該在當前標籤下面有一個「編輯」鏈接。 – Blckknght