में फ़ाइल एक्सटेंशन वाइल्डकार्ड का उपयोग करना मेरे पास फाइलों की एक निर्देशिका है जिसे मैं पायथन का उपयोग करके पार्स करने की कोशिश कर रहा हूं। अगर वे सभी एक ही एक्सटेंशन थे, तो मुझे कोई समस्या नहीं होगी, लेकिन किसी भी कारण से वे अपने मूल एक्सटेंशन के बाद अनुक्रमिक संख्यात्मक एक्सटेंशन के साथ बनाए गए हैं। उदाहरण के लिए: foo.log foo.log.1 foo.log.2 bar.log bar.log.1 bar.log.2 etc.
उस के शीर्ष पर, foo.log XML प्रारूप में है, जबकि bar.log नहीं है। केवल foo.log.*
औरfoo.log
फ़ाइलों को पढ़ने और विश्लेषण करने के लिए सबसे अच्छा तरीका क्या है? bar.log
फ़ाइलों को पढ़ने की आवश्यकता नहीं है। नीचे मेरी कोड है:os.listdir (पथ)
import os
from lxml import etree
path = 'C:/foo/bar//'
listing = os.listdir(path)
for files in listing:
if files.endswith('.log'):
print files
data = open(os.path.join(path, files), 'rb').read()
tree = etree.fromstring(data)
search = tree.findall('.//QueueEntry')
इस रूप में यह किसी भी .log.*
फ़ाइलों को पढ़ने नहीं है और पार्सर फ़ाइलों को पढ़ने के लिए कर रहे हैं पर chokes, लेकिन xml स्वरूप में नहीं हैं काम नहीं करता। धन्यवाद!
यदि ओपी इसे पॉसिक्स शैल की बजाय विंडोज 'cmd' खोल में वाइल्डकार्ड की तरह काम करने की उम्मीद कर रहा है, तो यह बिल्कुल सही नहीं है ... लेकिन यह उसके उपयोग के मामले के लिए पर्याप्त होना चाहिए, और किसी भी उपयोग के मामले में सबसे अधिक संभावना है साथ आने के लिए, तो मुझे लगता है कि यह सही जवाब है। – abarnert
उसने ऐसा किया, धन्यवाद! –
'~' का विस्तार नहीं करने के लिए धन्यवाद ग्लोब - किसी भी तरह से पाइथन यूनिक्स की तुलना में सभी सिस्टम कमांड को खराब बनाता है ... – user3467349