2012-08-01 11 views
11

में नोड मौजूद है या नहीं, यह जांचने का एक आसान तरीका है कि एचडीएफ 5 फ़ाइल का उपयोग करके एचडीएफ 5 फाइल में कोई नोड मौजूद है या नहीं।जांचें कि n5py

मुझे दस्तावेज़ों में कुछ भी नहीं मिला, इसलिए अभी मैं अपवादों का उपयोग कर रहा हूं, जो बदसूरत है।

# check if node exists 
# first assume it exists 
e = True 
try: 
    h5File["/some/path"] 
except KeyError: 
    e = False # now we know it doesn't 

संदर्भ जोड़ने के लिए: मैं इस का उपयोग कर रहा है, तो यह निर्धारित करने के एक नोड में एक ही नाम के साथ एक नया नोड बनाने के लिए प्रयास करने से पहले से मौजूद है।

उत्तर

18
e = "/some/path" in h5File 

ऐसा करता है। the Group documentation में इसका संक्षेप में उल्लेख किया गया है।

0

group docs पर दस्तावेज़ों की जांच करने के बाद। मुझे लगता है कि आप उपयोग से पहले जांच करने के लिए समूह वस्तु की कुंजी विधि का उपयोग कर सकते हैं:

# check if node exists 
# first assume it doesn't exist 
e = False 
node = "/some/path" 
if node in h5file.keys(): 
    h5File[node] 
    e = True 
+1

अजगर 2 में, यह वास्तव में कुंजी के पूरे सेट एक सूची में लोड हो जाएगा और फिर इस सूची पर रैखिक खोज करते हैं, का उपयोग करते हुए, जबकि '__contains__' (यानी '"/कुछ/पथ "h5file' में) इसे और अधिक सीधे जांचेंगे। साथ ही, यह दिए गए उदाहरण के लिए काम नहीं करेगा, केवल तभी यदि यह शीर्ष-स्तरीय सदस्य है। – Dougal

+0

मैंने इसे माना, लेकिन यह एम्बेडेड सदस्यों के लिए काम नहीं करता है। इसके अलावा, मुझे दक्षता के प्रभावों से अवगत नहीं था ... धन्यवाद! –

संबंधित मुद्दे