Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

अजगर का उपयोग करके हाइव क्वेरी आउटपुट से छपी खाली लाइन को हटा दें

आमतौर पर आप इनपुट फ़ाइल खोलते हैं और गैर-रिक्त पंक्तियों को दूसरी फ़ाइल में लिखते हैं:

with open('file.tsv') as infile, open('filtered_file.tsv', 'w') as outfile:
    for line in infile:
        if line.strip():
            outfile.write(line)

यदि आप फ़ाइल को जगह में फ़िल्टर करना चाहते हैं तो आप FileInput . का उपयोग कर सकते हैं inplace . के साथ विकल्प:

import fileinput
for line in fileinput.FileInput("infile", inplace=1):
    if line.strip():
        print line

हालांकि, यह एक मध्यवर्ती फ़ाइल का उपयोग करता है और कम डिस्क स्थान स्थितियों में काम नहीं कर सकता है।

कोई अतिरिक्त डिस्क स्थान आवंटित किए बिना फ़ाइल को इनप्लेस फ़िल्टर करने के लिए आप कुछ इस तरह का प्रयास कर सकते हैं:

with open('file.tsv', 'r+') as infile:
    read_pos = write_pos = 0
    line = infile.readline()
    while line:
        read_pos += len(line)
        if line.strip():
            infile.seek(write_pos)
            infile.write(line)
            write_pos += len(line)
        infile.seek(read_pos)
        line = infile.readline()
    # update file size to the new, possibly reduced, size
    infile.truncate(write_pos)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मिनट (स्तंभ) मुझे अन्य स्तंभों का सही डेटा नहीं लौटा रहा है

  2. MySQL में स्लैश (\) की खोज कैसे करें? और जहां (=) के लिए भागना (\) आवश्यक नहीं है, लेकिन लाइक के लिए क्यों आवश्यक है?

  3. MySQL के साथ नवीनतम डुप्लीकेट आईडी खोजें

  4. कैसे Django में अद्वितीय जांच के साथ दौड़ की स्थिति से बचने के लिए?

  5. नई लाइन द्वारा अलग किए गए एकल कॉलम में एकाधिक पंक्तियों का चयन करें