Lặp lại Python

iterparse[self, source, events=["end",], tag=None, attribute_defaults=False, dtd_validation=False, load_dtd=False, no_network=True, remove_blank_text=False, remove_comments=False, remove_pis=False, encoding=None

Trình phân tích cú pháp gia tăng

Phân tích cú pháp XML thành một cây và tạo các bộ dữ liệu [sự kiện, phần tử] theo kiểu giống như SAX. sự kiện là bất kỳ 'start', 'end', 'start-ns', 'end-ns'

Đối với 'bắt đầu' và 'kết thúc', phần tử là Phần tử mà trình phân tích cú pháp vừa tìm thấy mở hoặc đóng. Đối với 'start-ns', nó là một bộ [tiền tố, URI] của một khai báo không gian tên mới. Đối với 'end-ns', nó chỉ đơn giản là Không có. Lưu ý rằng tất cả các sự kiện bắt đầu và kết thúc được đảm bảo được lồng vào nhau đúng cách

Các sự kiện đối số từ khóa chỉ định một chuỗi các tên loại sự kiện sẽ được tạo. Theo mặc định, chỉ các sự kiện 'kết thúc' mới được tạo

Đối số thẻ bổ sung hạn chế các sự kiện 'bắt đầu' và 'kết thúc' đối với những phần tử khớp với thẻ đã cho. Đối số thẻ cũng có thể là một chuỗi các thẻ để cho phép so khớp nhiều thẻ. Theo mặc định, các sự kiện được tạo cho tất cả các phần tử. Lưu ý rằng các sự kiện 'start-ns' và 'end-ns' không bị hạn chế này ảnh hưởng

Các đối số từ khóa khác trong hàm tạo chủ yếu dựa trên cấu hình trình phân tích cú pháp libxml2. DTD cũng sẽ được tải nếu xác thực hoặc giá trị mặc định của thuộc tính được yêu cầu

Các đối số từ khóa boolean có sẵn
  • thuộc tính_defaults. đọc các thuộc tính mặc định từ DTD
  • dtd_validation. xác thực [nếu có DTD]
  • tải_dtd. sử dụng DTD để phân tích cú pháp
  • không có mạng. ngăn truy cập mạng cho các tệp liên quan
  • remove_blank_text. loại bỏ các nút văn bản trống
  • xóa_bình luận. loại bỏ nhận xét
  • remove_pis. hủy hướng dẫn xử lý
  • dải_cdata. thay thế các phần CDATA bằng nội dung văn bản bình thường [mặc định. Thật]
  • gọn nhẹ. bộ nhớ an toàn cho nội dung văn bản ngắn [mặc định. Thật]
  • giải quyết_thực thể. thay thế các thực thể bằng giá trị văn bản của chúng [mặc định. Thật]
  • big_tree. vô hiệu hóa các hạn chế bảo mật và hỗ trợ cây rất sâu và nội dung văn bản rất dài [chỉ ảnh hưởng đến libxml2 2. 7+]
  • html. phân tích cú pháp đầu vào dưới dạng HTML [mặc định. XML]
  • hồi phục. cố gắng phân tích thông qua đầu vào bị hỏng [mặc định. Đúng với HTML, Sai nếu không]
Đối số từ khóa khác
  • mã hóa. ghi đè mã hóa tài liệu
  • lược đồ. một XMLSchema để xác thực đối với
__init__[self, source, events=["end", ], tag=None, attribute_defaults=False, dtd_validation=False, load_dtd=False, no_network=True, remove_blank_text=False, remove_comments=False, remove_pis= . __trong đó__[. ] khởi tạo x; . giá trị tiếp theo hoặc tăng StopIteration
x. __trong đó__[. ] khởi tạo x; . giá trị tiếp theo hoặc tăng StopIteration
Creates a new element associated with this parser.the next value, or raise StopIteration

Kế thừa từ object. __delattr__, __format__, __getattribute__, __hash__, __reduce__, __reduce_ex__, __repr__, __setattr__, object0, object1, object2

def interproDB[thông tin, force=False, args={}]. iprXML = hệ điều hành. con đường. tham gia [FUNDB, 'interpro. xml'] iprTSV = os. con đường. tham gia [FUNDB, 'interpro. tsv'] nếu hệ điều hành. con đường. isfile[iprXML] và args. cập nhật và không ép buộc. nếu check4newDB['interpro', thông tin]. force = True nếu không phải os. con đường. isfile[iprXML] hoặc buộc. lib. đăng nhập. info['Đang tải xuống tệp ánh xạ InterProScan'] cho x trong [iprXML, iprTSV, iprXML+'. gz']. nếu hệ điều hành. con đường. isfile[x]. hệ điều hành. xóa [x] nếu đối số. quên đi. wget[DBURL. get['interpro'], iprXML+'. gz'] wget[DBURL. get['interpro-tsv'], iprTSV] khác. tải xuống [DBURL. get['interpro'], iprXML+'. gz'] tải xuống [DBURL. get['interpro-tsv'], iprTSV] md5 = calcmd5[iprXML+'. gz'] quy trình con. cuộc gọi [['gunzip', '-f', 'interpro. xml. gz'], cwd=os. con đường. join[FUNDB]] num_records = '' version = '' update = '' cho sự kiện, phần tử trong ElementTree. lặp lại [iprXML]. nếu yếu tố. thẻ == 'phát hành'. cho x trong phần tử. nhận con cái[]. nếu x. attrib['dbname'] == 'INTERPRO'. num_records = int[x. phiên bản attrib['entry_count']] = x. attrib['phiên bản'] iprdate = x. attrib['file_date'] thử xem. iprdate = ngày giờ. ngày giờ. strptime[ iprdate, "%d-%b-%y"]. strftime["%Y-%m-%d"] ngoại trừ ValueError. iprdate = ngày giờ. ngày giờ. strptime[ iprdate, "%d-%b-%Y"]. strftime["%Y-%m-%d"] info['interpro'] = ['xml', iprXML, version, iprdate, num_records, md5] type, name, version, date, records, checksum = info. get['interpro'] lib. đăng nhập. thông tin ['InterProScan XML. phiên bản = {. } ngày = {. } bản ghi = {. ,}'. định dạng [phiên bản, ngày tháng, hồ sơ]]
def process_classes[bản thân, giới hạn]. """ Sau khi tất cả các loài đã được xử lý. Lặp qua tệp xml và xử lý các bài viết, giống, gen, phenes và các lớp nhóm kiểu hình. Chúng tôi thêm các phần tử vào biểu đồ và lưu trữ id-to-nhãn trong lệnh label_hash, cùng với id chuyển đổi từ khóa bên trong sang bên ngoài trong lệnh id_hash. Cái sau được tham chiếu trong các hàm xử lý liên kết. . giới hạn thông số. . trở lại. """ tập tin của tôi = '/'. tham gia[[bản thân. rawdir, bản thân. files['data']['file']]] với gzip. open[myfile, 'rb'] dưới dạng readbin. trình đọc tệp = io. Trình đọc tệp TextIOWrapper[readbin, newline=""]. readline[] # xóa dòng khai báo xml cho sự kiện, elem trong ET. iterparse [trình đọc tệp]. bản thân. process_xml_table[ elem, 'Bài viết', tự. _ process_article_row, giới hạn] tự. process_xml_table[elem, 'Giống', tự. _ process_breed_row, giới hạn] tự. process_xml_table[elem, 'Genes_gb', tự. _ process_gene_row, giới hạn] tự. process_xml_table[ elem, 'OMIA_Group', tự. _ process_omia_group_row, giới hạn] tự. process_xml_table[elem, 'Phene', self. _ process_phene_row, giới hạn] tự. process_xml_table[ elem, 'Omim_Xref', tự. _ process_omia_omim_map, giới hạn] # hậu xử lý liên kết omia-omim để lọc ra các gen # [chỉ giữ lại kiểu hình/bệnh] self. clean_up_omim_genes[]

Làm cách nào để phân tích cú pháp XML bằng Python?

Để phân tích cú pháp tài liệu XML, bạn cần có toàn bộ tài liệu trong bộ nhớ. .
Để phân tích cú pháp tài liệu XML
Nhập xml. nhà thờ. thiểu số
Sử dụng hàm “parse” để phân tích tài liệu [ doc=xml. nhà thờ. thiểu số. phân tích cú pháp [tên tệp];
Gọi danh sách các thẻ XML từ tài liệu XML bằng mã [=doc. getElementsByTagName[“tên của thẻ xml”]

Làm cách nào để nối tệp XML trong Python?

Thêm chúng bằng hàm Subelement[] và xác định thuộc tính văn bản của nó. .
con=xml. Phần tử["nhân viên"] nm = xml. Phần tử con[con, "tên"] nm. văn bản = học sinh. .
nhập xml. cây etree. ElementTree dưới dạng et cây = et. ElementTree[file='nhân viên. xml'] gốc = cây. .
nhập xml. cây etree. ElementTree dưới dạng et cây = et

Làm cách nào để in tệp XML bằng Python?

Bạn có một vài lựa chọn. .
xml. cây etree. Yếu TốCây. thụt lề[]
ĐẹpSúp. làm đẹp[]
lxml. cây etree. phân tích cú pháp []
xml. nhà thờ. thiểu số. phân tích cú pháp []

Làm cách nào để thêm dòng mới vào XML bằng Python?

Không cần sử dụng các thư viện bên ngoài, bạn có thể dễ dàng đạt được một dòng mới giữa mỗi thẻ XML trong đầu ra bằng cách đặt thuộc tính đuôi cho mỗi phần tử thành '\n'. Bạn cũng có thể chỉ định số lượng tab sau dòng mới tại đây

Chủ Đề