0802
parent
2a6a840864
commit
9dde7437bb
@ -0,0 +1,47 @@
|
||||
import os
|
||||
import re
|
||||
|
||||
|
||||
class GsdParser:
|
||||
@classmethod
|
||||
def parseGsdFiles(cls, folderPath):
|
||||
gsdData = []
|
||||
for filename in os.listdir(folderPath):
|
||||
if filename.lower().endswith('.gsd'):
|
||||
filePath = os.path.join(folderPath, filename)
|
||||
identNumber, modelName = cls.parseGsdFile(filePath)
|
||||
if identNumber and modelName:
|
||||
gsdData.append({
|
||||
'filename': filename,
|
||||
'identNumber': identNumber,
|
||||
'modelName': modelName
|
||||
})
|
||||
return gsdData
|
||||
|
||||
@classmethod
|
||||
def parseGsdFile(cls, filePath):
|
||||
identNumber = None
|
||||
modelName = None
|
||||
with open(filePath, 'r', encoding='utf-8', errors='ignore') as file:
|
||||
content = file.read().replace(' ', '')
|
||||
identNumberMatch = re.search(r'Ident_Number=(\w+)', content)
|
||||
modelNameMatch = re.search(r'Model_Name="(.+?)"', content)
|
||||
|
||||
if identNumberMatch:
|
||||
identNumber = identNumberMatch.group(1)[2:]
|
||||
if modelNameMatch:
|
||||
modelName = modelNameMatch.group(1)
|
||||
|
||||
return identNumber, modelName
|
||||
|
||||
|
||||
# 示例用法
|
||||
if __name__ == '__main__':
|
||||
folderPath = './' # 替换为实际的文件夹路径
|
||||
parsedData = GsdParser.parseGsdFiles(folderPath)
|
||||
|
||||
for gsdInfo in parsedData:
|
||||
print(f"File: {gsdInfo['filename']}")
|
||||
print(f"Ident_Number: {gsdInfo['identNumber']}")
|
||||
print(f"Model_Name: {gsdInfo['modelName']}")
|
||||
print("-" * 40)
|
Loading…
Reference in New Issue