பைத்தான் மற்றும் CSV கோப்புகள் - பாடக் குறிப்புகள்
பாடச் சுருக்கம்
இப்பாடம் பைத்தான் நிரலாக்க மொழியைப் பயன்படுத்தி CSV (Comma Separated Values) கோப்புகளைக் கையாளுவதைப் பற்றி விரிவாக விளக்குகிறது. CSV கோப்புகள் என்பவை எளிய உரை வடிவமைப்பில் தரவுகளைச் சேமிக்கும் தட்டையான கோப்புகளாகும். பைத்தானில் உள்ள csv தொகுதி மூலம் இக்கோப்புகளைப் படிக்கவும் எழுதவும் முடியும். மேலும், எக்ஸெல் மற்றும் உரைப்பதிப்பிகள் போன்ற பல்வேறு கருவிகள் மூலம் CSV கோப்புகளை எவ்வாறு உருவாக்குவது மற்றும் கையாளுவது என்பதையும், reader(), writer() மற்றும் அகராதி அடிப்படையிலான DictReader(), DictWriter() போன்ற செயல்பாடுகளின் பயன்பாடுகளையும் இப்பாடம் தெளிவுபடுத்துகிறது.
கற்றலின் நோக்கங்கள்
- CSV கோப்புகளின் அடிப்படைத் தன்மைகளை அறிந்துகொள்ளுதல்.
- பைத்தான் மற்றும் எக்ஸெல் மூலம் CSV கோப்புகளை உருவாக்குதல்.
- பைத்தானின் csv தொகுதி கொண்டு கோப்புகளைப் படித்தல் மற்றும் எழுதுதல்.
- reader() மற்றும் DictReader() மூலம் தரவுக் கூறுகளைப் பட்டியலாகவோ அல்லது அகராதியாகவோ கையாளுதல்.
- writer() மற்றும் DictWriter() மூலம் புதிய தரவுகளைக் கோப்புகளில் பதிவு செய்தல்.
- தரவுகளை வரிசைப்படுத்துதல் மற்றும் குறிப்பிட்ட நெடுவரிசைகளை மட்டும் பிரித்தெடுத்தல் போன்ற மேம்பட்ட செயல்பாடுகளைப் புரிந்துகொள்ளுதல்.
முคัญ கருத்துக்கள் மற்றும் வரையறைகள்
CSV கோப்பு (Comma Separated Values)
CSV கோப்பு என்பது தரவுத்தளம் அல்லது அட்டவணைச் செயலியிலுள்ள தரவுகளை எளிய உரை வடிவில் காற்புள்ளியால் பிரித்துச் சேமிக்கும் ஒரு தட்டையான கோப்பாகும்.
பிரிப்பான் (Delimiter)
கோப்பிலுள்ள தரவுப் புலங்களை ஒன்றிலிருந்து ஒன்று பிரித்துக் காட்டப் பயன்படும் குறியீடு பிரிப்பான் ஆகும். பொதுவாக காற்புள்ளி, பைப், அல்லது தத்தல் போன்றவை பிரிப்பான்களாகப் பயன்படுகின்றன.
வரிமுறிப்பான் (Line Terminator)
ஒரு வரிசையின் முடிவையும் புதிய வரிசையின் தொடக்கத்தையும் குறிக்கப் பயன்படும் குறியீடு வரிமுறிப்பான் ஆகும். பைத்தானில் \r அல்லது \n போன்றவை பொதுவாகப் பயன்படுகின்றன.
வாசகர் மற்றும் எழுத்தாளர் பொருள்கள் (Reader and Writer Objects)
கோப்பிலுள்ள தரவுகளைப் படிக்க csv.reader() செயல்பாடும், தரவுகளை எழுத csv.writer() செயல்பாடும் பயன்படுகின்றன. இவை தரவுகளைப் பட்டியலாகக் கையாளுகின்றன.
அகராதி அடிப்படையிலான கையாளுதல் (DictReader and DictWriter)
கோப்பின் முதல் வரியிலுள்ள தலைப்புகளைத் திறவுகோலாகக் கொண்டு தரவுகளை அகராதி வடிவில் கையாள DictReader() மற்றும் DictWriter() பயன்படுகின்றன.
செயல்முறை வழிமுறைகள்
1. csv.reader() பயன்படுத்தி கோப்பைப் படித்தல்
பைத்தானில் ஒரு கோப்பைப் படித்து அதன் அனைத்து வரிசைகளையும் திரையில் அச்சிடுவதற்கான எளிய வழிமுறை பின்வருமாறு:
import csv
with open('sample.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
2. csv.writer() மற்றும் writerow() பயன்படுத்தி தரவுகளை எழுதுதல்
புதிய கோப்பை உருவாக்கி அதில் தரவுகளை எழுத பின்வரும் முறை பயன்படுகிறது:
import csv
data = [['பெயர்', 'வயது'], ['அருண்', '17'], ['கலா', '18']]
with open('output.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(data)
3. DictReader பயன்படுத்தி அகராதியாகப் படித்தல்
தரவுகளை அகராதி வடிவில் படித்து அணுக DictReader பயன்படுகிறது:
import csv
with open('sample.csv', 'r') as f:
reader = csv.DictReader(f)
for row in reader:
print(dict(row))
தேர்வில் நேரிடக்கூடிய பொதுவான தவறுகள்
- கோப்பு மூடல்: கோப்பைத் திறந்து வேலை செய்த பிறகு அதை மூடாவிட்டால் நினைவகம் வீணாகும். with open() பயன்படுத்தினால் கோப்பு தானாகவே மூடப்படும்.
- புதிய வரி இடைவெளி: விண்டோஸ் அமைப்பில் CSV கோப்பில் எழுதும்போது வெற்று வரிகள் தோன்றுவதைத் தடுக்க, open() செயல்பாட்டில் newline='' என்று குறிப்பிடுவதை மறக்கக் கூடாது.
- காற்புள்ளி கொண்ட தரவுகள்: புலத்தின் உள்ளே காற்புள்ளி இருந்தால், அதை இரட்டை மேற்கோள் குறிக்குள் கொடுக்க வேண்டும். இல்லையெனில், அது தனிப் புலமாகப் பிரிக்கப்பட்டுவிடும்.
- தவறான கோப்பு பாதை: விண்டோஸ் அமைப்பில் பாதையைக் குறிப்பிடும்போது பின்சாய்வுக் கோட்டிற்குப் பதிலாக முன்சாய்வுக் கோடு பயன்படுத்த வேண்டும்.
தேர்வுக்கான பயனுள்ள குறிப்புகள்
- csv.reader() மற்றும் csv.writer() ஆகிய செயல்பாடுகள் பட்டியல்களுடன் வேலை செய்கின்றன என்பதை நினைவில் கொள்ளுங்கள்.
- csv.DictReader() மற்றும் csv.DictWriter() ஆகியவை அகராதிகளுடன் வேலை செய்கின்றன.
- நெடுவரிசையின் தலைப்புகளைத் தவிர்த்துவிட்டுத் தரவுகளைப் படிக்க next() செயல்பாட்டைப் பயன்படுத்த வேண்டும்.
- வரிசைப்படுத்துவதற்கு sorted() அல்லது sort() செயல்பாடுகளுடன் operator.itemgetter() ஐப் பயன்படுத்தலாம்.
- register_dialect() மூலம் புதிய வடிவமைப்புப் பண்புகளைப் பதிவு செய்து கொள்ளலாம்.