本文整理汇总了Python中FileUtils.getDetails方法的典型用法代码示例。如果您正苦于以下问题:Python FileUtils.getDetails方法的具体用法?Python FileUtils.getDetails怎么用?Python FileUtils.getDetails使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileUtils
的用法示例。
在下文中一共展示了FileUtils.getDetails方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: refreshTable
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import getDetails [as 别名]
def refreshTable(self, _path):
self.values = []
self.setColumnWidth(6, 70)
self.setColumnWidth(7, 40)
uni.startThreadAction()
import Amarok
Dialogs.showState(translate("AmarokMusicTable", "Getting Values From Amarok"), 0, 1)
if Amarok.checkAmarok():
isContinueThreadAction = uni.isContinueThreadAction()
if isContinueThreadAction:
from Amarok import Operations
musicFileValuesWithNames = Operations.getAllMusicFileValuesWithNames(
uni.MySettings[self.amarokFilterKeyName])
Dialogs.showState(translate("AmarokMusicTable", "Values Are Being Processed"), 1, 1)
isContinueThreadAction = uni.isContinueThreadAction()
if isContinueThreadAction:
if musicFileValuesWithNames is not None:
allItemNumber = len(musicFileValuesWithNames)
self.setRowCount(allItemNumber)
rowNo = 0
for musicFileRow in musicFileValuesWithNames:
isContinueThreadAction = uni.isContinueThreadAction()
if isContinueThreadAction:
try:
if (fu.isFile(musicFileRow["filePath"]) and
fu.isReadableFileOrDir(musicFileRow["filePath"], False, True)):
details = fu.getDetails(musicFileRow["filePath"])
content = {}
if Amarok.getSelectedTagSourseType("AmarokCopyTable") == "Amarok (Smart)":
content["path"] = musicFileRow["filePath"]
content["baseNameOfDirectory"] = fu.getBaseName(
fu.getDirName(musicFileRow["filePath"]))
content["baseName"] = fu.getBaseName(musicFileRow["filePath"])
content["artist"] = musicFileRow["artist"]
content["title"] = musicFileRow["title"]
content["album"] = musicFileRow["album"]
content["albumArtist"] = musicFileRow["albumArtist"]
content["trackNum"] = musicFileRow["trackNumber"]
content["year"] = musicFileRow["year"]
content["genre"] = musicFileRow["genre"]
content["firstComment"] = musicFileRow["comment"]
content["firstLyrics"] = musicFileRow["lyrics"]
tagger = Taggers.getTagger()
try:
tagger.loadFile(musicFileRow["filePath"])
except:
if tagger.isSupportInfo:
content["length"] = ""
content["bitrate"] = ""
content["sampleRate"] = ""
content["mode"] = ""
else:
if content["artist"].strip() == "":
content["artist"] = tagger.getArtist()
if content["title"].strip() == "":
content["title"] = tagger.getTitle()
if content["album"].strip() == "":
content["album"] = tagger.getAlbum()
if content["albumArtist"].strip() == "":
content["albumArtist"] = tagger.getAlbumArtist()
if str(content["trackNum"]).strip() == "":
content["trackNum"] = tagger.getTrackNum()
if str(content["year"]).strip() == "":
content["year"] = tagger.getYear()
if content["genre"].strip() == "":
content["genre"] = tagger.getGenre()
if content["firstComment"].strip() == "":
content["firstComment"] = tagger.getFirstComment()
if content["firstLyrics"].strip() == "":
content["firstLyrics"] = tagger.getFirstLyrics()
if tagger.isSupportInfo:
content["length"] = tagger.getLength()
content["bitrate"] = tagger.getBitrate()
content["sampleRate"] = tagger.getSampleRate()
content["mode"] = tagger.getMode()
elif Amarok.getSelectedTagSourseType("AmarokCopyTable") == "Only Amarok":
content["path"] = musicFileRow["filePath"]
content["baseNameOfDirectory"] = ""
content["baseName"] = fu.getBaseName(musicFileRow["filePath"])
content["artist"] = musicFileRow["artist"]
content["title"] = musicFileRow["title"]
content["album"] = musicFileRow["album"]
content["albumArtist"] = musicFileRow["albumArtist"]
content["trackNum"] = musicFileRow["trackNumber"]
content["year"] = musicFileRow["year"]
content["genre"] = musicFileRow["genre"]
content["firstComment"] = musicFileRow["comment"]
content["firstLyrics"] = musicFileRow["lyrics"]
tagger = Taggers.getTagger()
if tagger.isSupportInfo:
try:
tagger.loadFile(musicFileRow["filePath"])
except:
content["length"] = ""
content["bitrate"] = ""
content["sampleRate"] = ""
content["mode"] = ""
else:
#.........这里部分代码省略.........
示例2: refreshTable
# 需要导入模块: import FileUtils [as 别名]
# 或者: from FileUtils import getDetails [as 别名]
def refreshTable(self, _path):
self.values = []
self.setColumnWidth(6, 70)
self.setColumnWidth(7, 40)
musicFileNames = fu.readDirectoryWithSubDirectoriesThread(_path,
int(uni.MySettings["subDirectoryDeep"]), "music",
uni.getBoolValue(
"isShowHiddensInSubFolderMusicTable"))
isCanNoncompatible = False
allItemNumber = len(musicFileNames)
uni.startThreadAction()
rowNo = 0
self.setRowCount(allItemNumber)
for filePath in musicFileNames:
isContinueThreadAction = uni.isContinueThreadAction()
if isContinueThreadAction:
try:
if fu.isReadableFileOrDir(filePath, False, True):
tagger = Taggers.getTagger()
try:
tagger.loadFile(filePath)
except:
Dialogs.showError(translate("FileUtils/Musics", "Incorrect Tag"),
str(translate("FileUtils/Musics",
"\"%s\" : this file has the incorrect tag so can't read tags.")
) % Organizer.getLink(filePath))
if tagger.isAvailableFile() is False:
isCanNoncompatible = True
details = fu.getDetails(filePath)
content = {}
content["path"] = filePath
content["baseNameOfDirectory"] = str(
str(fu.getBaseName(_path)) + str(fu.getDirName(filePath)).replace(_path, ""))
content["baseName"] = fu.getBaseName(filePath)
content["artist"] = tagger.getArtist()
content["title"] = tagger.getTitle()
content["album"] = tagger.getAlbum()
content["albumArtist"] = tagger.getAlbumArtist()
content["trackNum"] = tagger.getTrackNum()
content["year"] = tagger.getYear()
content["genre"] = tagger.getGenre()
content["firstComment"] = tagger.getFirstComment()
content["firstLyrics"] = tagger.getFirstLyrics()
if tagger.isSupportInfo:
content["length"] = tagger.getLength()
content["bitrate"] = tagger.getBitrate()
content["sampleRate"] = tagger.getSampleRate()
content["mode"] = tagger.getMode()
content["size"] = details[stat.ST_SIZE]
content["lastAccessed"] = details[stat.ST_ATIME]
content["lastModified"] = details[stat.ST_MTIME]
content["lastMetadataChanged"] = details[stat.ST_CTIME]
self.values.append(content)
newBaseNameOfDirectory = Organizer.emend(self.values[rowNo]["baseNameOfDirectory"], "directory")
self.createItem(rowNo, "baseNameOfDirectory", newBaseNameOfDirectory,
self.values[rowNo]["baseNameOfDirectory"])
newBaseName = Organizer.emend(self.values[rowNo]["baseName"], "file")
self.createItem(rowNo, "baseName", newBaseName, self.values[rowNo]["baseName"])
newArtist = Organizer.emend(self.values[rowNo]["artist"])
self.createItem(rowNo, "artist", newArtist, self.values[rowNo]["artist"])
newTitle = Organizer.emend(self.values[rowNo]["title"])
self.createItem(rowNo, "title", newTitle, self.values[rowNo]["title"])
newAlbum = Organizer.emend(self.values[rowNo]["album"])
self.createItem(rowNo, "album", newAlbum, self.values[rowNo]["album"])
newAlbumArtist = Organizer.emend(self.values[rowNo]["albumArtist"])
self.createItem(rowNo, "albumArtist", newAlbumArtist, self.values[rowNo]["albumArtist"])
newTrackNum = str(self.values[rowNo]["trackNum"])
self.createItem(rowNo, "trackNum", newTrackNum, self.values[rowNo]["trackNum"])
newYear = Organizer.emend(self.values[rowNo]["year"])
self.createItem(rowNo, "year", newYear, self.values[rowNo]["year"])
newGenre = Organizer.emend(self.values[rowNo]["genre"])
self.createItem(rowNo, "genre", newGenre, self.values[rowNo]["genre"])
newFirstComment = Organizer.emend(self.values[rowNo]["firstComment"])
self.createItem(rowNo, "firstComment", newFirstComment, self.values[rowNo]["firstComment"])
newFirstLyrics = Organizer.emend(self.values[rowNo]["firstLyrics"])
self.createItem(rowNo, "firstLyrics", newFirstLyrics, self.values[rowNo]["firstLyrics"])
if tagger.isSupportInfo:
self.createItem(rowNo, "length", content["length"])
self.createItem(rowNo, "bitrate", content["bitrate"])
self.createItem(rowNo, "sampleRate", content["sampleRate"])
self.createItem(rowNo, "mode", content["mode"])
self.createItem(rowNo, "size", Organizer.getCorrectedFileSize(content["size"]))
self.createItem(rowNo, "lastAccessed", Organizer.getCorrectedTime(content["lastAccessed"]))
self.createItem(rowNo, "lastModified", Organizer.getCorrectedTime(content["lastModified"]))
#.........这里部分代码省略.........