Process SQL Queries in Input Files with Python -
UPDATE मैंने कुछ नया कोड लागू किया है और अब एक नया समस्या: inffile में infile के लिए: इन्फिल्स = argfile.readlines () के रूप में खुले (इनपुटफाइल, 'आर') के साथ query_dir = '/ path / to / sql' sql_commands = []: प्रिंट ("इन्फीलः {0}"। प्रारूप (इन्फिल)) कोशिश: infile = os.path.join (query_dir, infile) .replace ('\ n', '') क्वेरी = [sqlfile.strip () sqlfile के लिए क्वेरी में क्वेरी के लिए ई: प्रिंट ("IOError: {0}"। प्रारूप (ई) के रूप में IOError को छोड़कर (इन्फ्यूयल, 'आर')): sql_commands.append (query) प्रिंट ("sql कमांड: {0} ".format (sql_commands)) अब अंत में, जब प्रिंट स्टेटमेंट SQL आज्ञा देता है, फ़ाइल की सामग्री मौजूद है, लेकिन एक प्रारूप में जो मेरे लिए काम नहीं कर रहा है उदाहरण के लिए, ऐसा लगता है: मुझे एसक्यूएल क्वेरी प्राप्त करना है जो फ़ाइल में है जो कमांड द्वारा चलाने के लिए इनपुट फ़ाइल के एक पंक्ति पर है: < p> मूल प्रश्न मैंने विभिन्न मार्गों और स्थानों (इनपुट फ़ाइल में पूर्ण पथ का उपयोग करने सहित) की कोशिश की है और मुझे यकीन नहीं है कि क्या चल रहा है। मैंने सभी फ़ाइलों को एक ही निर्देशिका में स्क्रिप्ट के साथ रखने की कोशिश की, और यह एक ही त्रुटि दी। मुझे यकीन नहीं है कि कोड के आंतरिक भाग में फ़ाइल के रूप में SQL फ़ाइल को कैसे समझाया जा सकता है ... मेरे पास एक फ़ाइल है जो प्रत्येक पंक्ति के लिए एक फ़ाइल में एक SQL क्वेरी है: input.file: मेरे पास एक पायथन स्क्रिप्ट है जो फ़ाइल लेती है (इनमें से एक) इसमें एक एसक्यूएल क्वेरी के साथ और क्वेरी को निष्पादित करता है और मैं एक फाइल नाम रखने में सक्षम होना चाहता हूँ जिसमें फ़ाइल की प्रत्येक पंक्ति पर SQL क्वेरी है, और फिर इस फाइल को उसी पायथन स्क्रिप्ट के साथ संसाधित करें। I मुझे वहाँ होने में परेशानी हो रही है मैं फ़ाइल की तर्ज मुद्रित कर सकता हूँ, जिनमें से प्रत्येक एक एसक्यूएल क्वेरी के साथ एक इनपुट फाइल है: मुझे यकीन नहीं है कि ऐसा करने के बारे में कैसे जाना है कि मैं इस स्निपेट का उपयोग कर सकता हूं: मुझे इनपुट फ़ाइलों की लाइनों को तर्कों में अनुवाद करना है, ताकि मैं उन्हें स्क्रिप्ट के साथ संसाधित कर सकूं।
sql कमांड: ['- टिप्पणी', '', 'कॉलम 1, स्तंभ 2,', चुनें। । । 'एक्स पी' से, । ।]
कर्सर.असेक्यूट (कमांड)
query_file1.sql query_file2.sql query_file3.sql
pprint और
PrettyPrinter का उपयोग करके इसके आउटपुट के सुंदर संस्करण को प्रिंट करता है।
। । ओपन (इनपुटफाइल, 'आर') के साथ के रूप में argfile: लाइन = argfile.readlines () पंक्ति में लाइन के लिए: प्रिंट (रेखा) । ।
। । Sql_commands में कमांड के लिए: try: pp = pprint.PrettyPrinter (इंडेंट = 4) कर्सर.एक्सिक्यूट (कमांड) pp.pprint (कर्सर.फेटचाल ())। । ।
मुझे लगता है कि आपको sql_commands नाम की सूची की आवश्यकता है। सबसे पहले आपको फ़ाइल में पंक्ति मिलती है, फिर उसे एक सूची में संग्रहीत करें Sql_commands = [] खुले (इनपुटफाइल, 'आर') के साथ आर्गफाइल के रूप में: पंक्तियों में पंक्ति के लिए लाइनों = आर्गफाइल। रोल्डलाइन (): खुले (रेखा, 'आर') के रूप में sqlfile: sqls = sqlfile.readlines () sql में Sqls: sql_commands.append (sql)
Comments
Post a Comment