Я пытаюсь открыть массовые данные из USPTO .XML-файлы в zip-файлах являются сцепленными xml-файлами, содержащими несколько объявлений xml, и имеют большой размер.Я пытаюсь читать только строки из XML, пока не доберусь до следующего объявления XML.Я нашел этот связанный вопрос, без кода.
Я хочу создать функцию, которая выполняет следующие действия:
- Для каждого * .zip файла
- Извлечь все XML-файл (ы) (или открыть XML-файл (ы) для чтения)
- Считать строки из XML-файла (ов)
- Добавить каждую строку до следующейОбъявление xml
- Возвращает строку
До сих пор я был в состоянии открыть zip-файл, найти все xml-файлы и извлечь каждый xml-файл.Я бы предпочел не записывать XML-файл на диск, а вместо этого создать строку, представляющую собой один XML-документ, который я затем буду анализировать.
def main():
path = 'bulk/'
allFiles = glob.glob(path + '*.zip')
allFiles.sort()
for file in allFiles:
try:
with zipfile.ZipFile(file, mode = 'r', allowZip64 = True) as fin:
print(fin, '- ok')
print(fin.namelist())
for name in fin.namelist():
if name.endswith('xml'):
print(name) # all files that end in 'xml'
fin.extract(name, path='bulk/')
print('extracted ', name)
# TODO function to read lines of the xml file and
except zipfile.BadZipFile:
print(file,'- Bad zip file')
if __name__ == '__main__': main()