## @file # Define a dictionary structure # # Copyright (c) 2007, Intel Corporation. All rights reserved.
# This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at # http://opensource.org/licenses/bsd-license.php # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. # ## # Import Modules # import EdkLogger from DataType import * ## Convert a text file to a dictionary # # Convert a text file to a dictionary of (name:value) pairs. # # @retval 0 Convert successful # @retval 1 Open file failed # def ConvertTextFileToDictionary(FileName, Dictionary, CommentCharacter, KeySplitCharacter, ValueSplitFlag, ValueSplitCharacter): try: F = open(FileName,'r') Keys = [] for Line in F: if Line.startswith(CommentCharacter): continue LineList = Line.split(KeySplitCharacter,1) if len(LineList) >= 2: Key = LineList[0].split() if len(Key) == 1 and Key[0][0] != CommentCharacter and Key[0] not in Keys: if ValueSplitFlag: Dictionary[Key[0]] = LineList[1].replace('\\','/').split(ValueSplitCharacter) else: Dictionary[Key[0]] = LineList[1].strip().replace('\\','/') Keys += [Key[0]] F.close() return 0 except: EdkLogger.info('Open file failed') return 1 ## Print the dictionary # # Print all items of dictionary one by one # # @param Dict: The dictionary to be printed # def printDict(Dict): if Dict != None: KeyList = Dict.keys() for Key in KeyList: if Dict[Key] != '': print Key + ' = ' + str(Dict[Key]) ## Print the dictionary # # Print the items of dictionary which matched with input key # # @param list: The dictionary to be printed # @param key: The key of the item to be printed # def printList(Key, List): if type(List) == type([]): if len(List) > 0: if key.find(TAB_SPLIT) != -1: print "\n" + Key for Item in List: print Item