கணினி
அறிவியல் : பைத்தான் மற்றும்
CSV கோப்புகள்
மதிப்பீடு
பகுதி - அ
சரியான விடையை தேர்ந்தெடுத்து
எழுதுக (1 மதிப்பெண்)
1. CSV கோப்பானது பின்வருபவனவற்றுள் எவ்வாறு அழைக்கப்பட்டுள்ளது.............
அ)
Flat File
ஆ)
3D File
இ)
String File
ஈ)
Random File
விடை : அ) Flat
File
2. CRLF என்பதன் விரிவாக்கம்
அ)
Control Return and Line Feed
ஆ)
Carriage Return and Form Feed
இ)
Control Router and Line Feed
ஈ)
Carriage Return and Line Feed
விடை : ஈ)
Carriage Return and Line Feed
3. பின்வருபவனவற்றுள் எந்த செயற்கூறானது
CSV கோப்பினில் பல்வேறு செயல்பாடுகளை செய்ய பைத்தானால் வழங்கப்பட்டுள்ளது ஆகும்?
அ)
py
ஆ)
xls
இ)
csv
ஈ)
os
விடை : இ) csv
4. உருவப்படம் அல்லது இயங்குநிலை
கோப்பு போன்று உரை அல்லாத கோப்புகளை கையாள பின்வரும் எந்த முறைமையானது பயன்படுகிறது?
அ)
உரை
ஆ)
இருமநிலை
இ)
xls
ஈ)
csv
விடை: ஆ) இருமநிலை
5. கோப்பினில் ஒரு வரிசையை தவிர்க்க
பயன்படும் கட்டளை
அ)
next()
ஆ)
skip()
இ)
omit()
ஈ)
bounce() |
விடை : அ)
next()
6. பின்வருபவனவற்றுள் CSV செயற்கூறில்
writer() முறையால் வழங்கப்பட்டுள்ள வரிமுறிப்பான் எது?
அ)
Line Terminator
ஆ)
Enter Key
இ)
- Form Feed
ஈ)
Data Terminator
விடை : அ) Line
Terminator
7. பின்வரும் நிரலின் வெளியீடு
யாது?
"city.csv" என்ற கோப்பில் கீழேயுள்ள விவரங்களை
கொண்டிருப்பின்
import CSV
d=csv.reader
(open("C.\PYPRG\ch/3City. CSV")
chennai,mylapore
mumbai,andheri
next(d)
for row in d:
print(row)
அ)
chennai,mylapore
ஆ)
mumbai,andheri
இ) chennai,mumbai
ஈ) chennai,mylapore,mumbai,andheri
விடை : ஆ)
mumbai,andheri
8. Dictionary தரவுகளை குறிக்க
இவற்றுள் எது ஒரு பொருளை உருவாக்குகின்றது?
அ)
listreader()
ஆ)
reader()
இ)
tuplereader()
ஈ)
DicReader ()
விடை : ஈ)
DicReader ()
9. ஏற்கனவே உள்ள கோப்பில் உள்ள
தரவுகளில் சில மாற்றங்கள் செய்வதும் அல்லது மேலும் தரவை சேர்ப்பது இவ்வாறு அழைக்கலாம்.
அ)
பதிப்பித்தல்
ஆ)
இறுதியில் சேர்த்தல்
இ)
மாற்றம் செய்தல்
ஈ)
திருத்துதல்
விடை: இ) மாற்றம்
செய்தல்
10. test.csv என்ற கோப்பில் பின்வரும்
நிரல் என்ன விவரத்தை எழுதும்.
import csv
D=[['Exam'],['Quarterly'],['Halfyearly']]
csv.register_dialect('M',lineterminator
='\n')
with
open('c:\pyprg\ch13\line2.csv', 'w') as f:
wr=
csv.writer(f,dialect='M')
wr.writerows(D)
f.close()
விடை : ஈ)
Exam, Quarterly, Halfyearly
பகுதி - ஆ
அனைத்து வினாக்களுக்கும்
விடையளி (2 மதிப்பெண்கள்)
1. CSV கோப்பு என்றால் என்ன?
விடை. CSV கோப்பானது ஒவ்வொரு வரிசையிலும் காற்புள்ளி அல்லது வேறு ஏதேனும்
ஒரு பிரிப்பானைக் கொண்டு பிரிக்கப்பட்ட பல புலங்களை கொண்டுள்ள பயனர் படிக்கக் கூடிய
உரை கோப்பாகும்.
2. பைத்தான் மூலம் CSV கோப்பை
படிப்பதற்கான இரு வழிகளை குறிப்பிடுக.
விடை. CSV கோப்பினை படிக்க இரண்டு வழி முறைகள் உள்ளன.
(i) CSV தொகுதி படித்தல் செயற்கூறை பயன்படுத்துதல்.
(ii) DictReader இனக்குழுவை பயன்படுத்துதல்.
3. கோப்பின் கொடாநிலை முறைமைகளை
குறிப்பிடுக.
விடை. எழுதுதல் மற்றும் படித்தல் செயல்பாடுகளில் CSV கோப்பின் கொடாநிலை உரை
முறையாகும்.
4. next() செயற்கூறின் பயன்பாடு
என்ன?
விடை. வரிசையின் தலைப்புகளும் சேர்த்து வரிசைப்படுத்தப்படுவதை தவிர்க்க
வரிசைப்படுத்தும் போது முதல் வரிசையானது தவிர்க்கப்படல் வேண்டும்.
"next()" என்ற கட்டளை மூலம் இதை செயல்படுத்த முடியும்.
5. CSV கோப்பில் ஒன்றிக்கு மேற்பட்ட
நெடுவரிசையை எவ்வாறு வரிசையாக்கம் செய்வாய்? எடுத்துக்காட்டுத் தருக.
விடை. ஒன்றுக்கு மேற்பட்ட புலங்களை வரிசைப்படுத்த itemgetter என்பதில் ஒன்றுக்கு
மேற்பட்ட சுட்டு எண்களை குறிப்பிடுவதன் மூலம் CSV -ல் வரிசையாக்கத்தை நிறைவேற்றாலம்.
தொடரியல்
sortedlist = sorted(data, key=operator.
itemgetter(Col_number),reverse=True)
எ.கா. sortedlist = sorted(data, key=operator. itemgetter(1,2,3))
பகுதி - இ
அனைத்து வினாக்களுக்கும்
விடையளி (3 மதிப்பெண்கள்)
1. பைத்தானிலுள்ள open() செயற்கூற்றை
பற்றி குறிப்பு எழுதுக. மேலும் இதன் இரண்டு வழிமுறைகளின் வேறுபாடுகள் என்ன?
விடை. open() என்ற உள்ளிணைந்த செயற்கூறு பைத்தானில் ஒரு கோப்பை திறக்கும்
இந்த செயற்கூறு கோப்பு பொருள் அல்லது திரும்பி கொடுக்கும், இதை பயன்படுத்தி கோப்பின்
தரவுகளை படிக்கவோ அல்லது மாற்றவோ முடியும்.
எடுத்துக்காட்டு :
>>> f = open("sample.txt") # தற்போது கோப்புறையில்
கோப்பை திறக்க மற்றும் இதில் f என்பது கோப்பு பொருளை குறிக்கும்.
>>> f = open('c:\\pyprg\\ch13sample5.csv') #
கோப்பின் முழுமையான பாதையைக் குறிக்கும்.
2. ஏற்கனவே உள்ள கோப்பில் மாற்றம்
செய்யும் பைத்தான் நிரலை எழுதுக.
விடை . import csv
row = [3', 'Meena','Bangalore']
with open('student.csv', 'r') as readFile:
reader = csv.reader(readFile) .
lines = list(reader) # list()-
ஒவ்வொரு வரிசையான தரவை ஒரு List ஆக சேமிக்கும்
lines[3] = row
with open('student.csv', 'w') as writeFile:
# பயனர் தரவை பிரிப்பானுடன் மாற்றியமைத்து திருப்பி அனுப்பும் writer பொருள்
writer = csv.writer(writeFile)
#writerows() செயற்கூறு CSV கோப்பில் ஒன்றிக்கு
writer.writerows(lines)
readFile.close()
writeFile.close()
3. காற்புள்ளியை (,) தானமைவு பிரிப்பானாக
கொண்டுள்ள CSV கோப்பினை படிப்பதற்கான பைத்தான் நிரலை எழுதுக.
விடை . #importing csv
import csv
#opening the csv file which is in different location with read
mode
with open('c:\\pyprg\\sample1.csv', 'r') as F:
#other way to open the file is f= ('c:\\pyprg\\ samplel.csv',
'r')
reader = csv.reader(F)
# printing each line of the Data row by row
print(row)
F.close()
4. write மற்றும் append mode
முறைமைகளின் வேறுபாடு என்ன?
விடை. (i) 'w' write முறைமை புதிய கோப்பினை உருவாக்க உதவுகிறது. ஏற்கனவே அக்கோப்பானது
உருவாக்கப்பட்டிருந்தால் அக்கோப்பின் பெயரில் புதிய கோப்பினை உருவாக்கும்.
(ii) 'a' append முறைமையானது கோப்பானது ஏற்கனவே உருவாக்கப்பட்டிருந்தால்
அதன் இறுதியில் தரவினை சேர்க்கும். இல்லையெனில் புதிய கோப்பினை உருவாக்கும்.
5. reader() மற்றும்
DictReader() செயற்கூற்றின் வேறுபாடு என்ன?
விடை. csv.reader() மற்றும் DictReader() க்கு இடையேயான முக்கிய வேறுபாட்டை
எளிமையாக கூறுவதெனில் csv.reader மற்றும் csv.writer ஆனது பட்டியல் (list/tuple) பதிவுடன்
வேலை செய்யும். csv.DictReader மற்றும் csv.DictWriter ஆனது அகராதியில் வேலை செய்யும்.
பகுதி - ஈ
அனைத்து வினாக்களுக்கும்
விடையளி (5 மதிப்பெண்கள்)
1. எக்ஸெல் மற்றும் CSV கோப்பின்
வேறுபாடு என்ன?
எக்ஸெல்
1.
CSV கோப்பின் அனைத்து அட்டவணைத்தாளிலுள்ள பொருளடக்கம் மற்றும் வடிவூட்டல்களை
உள்ளடக்கிய தகவல்களை இரு நிலை வடிவில் உரை வடிவ கோப்பாகும்.
2.
XLS கோப்புகள் அவற்றை படிப்பதற்காக அவற்றை உருவாக்கப்பட்ட பயன்பாடுகளை கொண்டு
மட்டுமே படிக்க முடியும். அது போன்றே எழுதுதலும் ஆகும்.
3.
Excel அட்டவணைச்செயலி அதற்கென உருவாக்கப்பட்டுள்ள தனியுரிம வடிவமைப்பு வகையில்
கோப்பினை சேமிக்கும். (அதாவது xls| அல்லது xlsx).
4.
Excel ஆனது தரவை பெறும் இறக்கம் செய்யும் (import) போது அதிக நினைவக இடத்தை
எடுத்துக் கொள்ளும்.
CSV
1.
CSV வடிவத்தில் காற்புள்ளிகளால் பிரிக்கப்பட்ட தொடர்ச்சியான மதிப்புகளைக் கொண்ட எளிய கொண்ட கோப்பாகும்.
2.
CSV கோப்புகளை Windows இயக்க அமைப்பில் உள்ள notepad, MS Excel, OpenOffice போன்ற
உரைப் பதிப்பான்களைக் கொண்டு திறக்கலாம்.
3.
அட்டவணை வடிவ தகவல்களை .csv என்ற நீட்டப்புடன் பிரிக்கப்பட்ட உரைக் கோப்புகளாக
சேமிக்கும் வடிவம் CSV ஆகும்.
4. CSV கோப்புகளை இறக்கம் செய்யும் போது வேகமாக செயல்படும். குறைவான நினைவக இடத்தை எடுத்துக் கொள்ளும்.
2. பல்வேறு கோப்பு முறைமைகளின்
பொருள்களை பட்டியலிடுக.
'r' படிப்பதற்க மட்டுமே ஒரு கோப்பினை திறக்கவும் (தானமைவு நிலை)
‘w’ கோப்பில் தரவுகளை எழுதுவதற்கு திறக்கவும். குறிப்பிடப்பட்ட கோப்பு
இல்லையெனில் புதிய கோப்பினை உருவாக்கும். கோப்பில் தரவுகள் இருப்பின் அவை
அழிக்கப்படும்.
‘x’ தனித்துவமான படைப்பிற்காக கோப்பினை திறக்கவும். கோப்பு முன்பே
உருவாக்கப்பட்டிருந்தால் இந்த செயல் முறையானது தோல்வியடையும்.
‘a’ கோப்பின் தரவுகளை அழிக்காமல் அதன் இறுதியில் புதிய தரவுகளை
சேர்ப்பதற்கு திறக்கவும். குறிப்பிடப்பட்ட கோப்பு இல்லையெனில் புதிய கோப்பினை
உருவாக்கும்.
't' உரை முறைமையில் கோப்பு திறக்கவும் (தானமைவு நிலை)
‘b’ இருமநிலை முறைமையில் கோப்பினை திறக்கவும்.
'+' புதுப்பித்தலிற்காக கோப்பினை திறக்கவும் (படித்தல் மற்றும் எழுதுதல்)
3. பைத்தானில் ஒரு கோப்பை படிப்பதற்கான
பல்வேறு வழிமுறைகளை எழுதுக.
விடை. பைத்தான் பயன்படுத்தி CSV கோப்பினை படித்தல் :
CSV கோப்பிளை படிக்க இரண்டு வழி முறைகள் உள்ளன.
(i) CSV தொகுதி படித்தல் செயற்கூறை பயன்படுத்துல்.
(ii) DictReader இனக்குழுவை பயன்படுத்துதல்.
CSV -ன் Reader செயற்கூறு :
(i) CSV கோப்பின் உள்ளடக்கத்தை படிக்க csv.reader() என்ற முறையானது
பயன்படுத்தப்படுகிறது.
(ii) reader() செயற்கூறானது கோப்பின் ஒவ்வொரு வரியையும் படித்து அவற்றை
நெடுவரிசைகளின் பட்டியலாக (List) அமைக்கும்.
(iii) மாறியின் தரவிற்கு தேவையான நெடுவரிசைசையை தேர்வு செய்யலாம். இச்செயற்கூறை
பயன்படுத்தி பயனர் கோப்பின் தரவுகளில் உள்ள இரட்டை மேற்கோள் குறி (" "),
(l) மற்றும் (,) போன்ற பல்வேறு வடிவமைப்புகளை பயன்படுத்தி படிக்கலாம்.
csv.reader() செயற்கூறின் தொடரியல்
csv.reader(fileobject, delimiter, fmtparams)
இங்கு,
(iv) file object : கோப்பின் பாதையையும் முறைமையும் திருப்பி அனுப்பும்.
(v) delimiter : இது விருப்பத்தேர்வு அளபுருவாகும். இது செந்தர வரம்புக்
குறிகளை கொண்டிருக்கும். (',|) போன்றவை மற்றவைகள் தவிர்க்கப்படும்.
(vi) fmtparams : கொடாநிலை மதிப்புகளை மேற்பதிப்பு செய்ய/நீக்க பயன்படும்
விருப்பத் தேர்வு அளபுருவாகும்.
(vii) CSV கோப்பு - கொடாநிலை பிரிப்பானான காற்புள்ளியை கொண்ட தரவு.
(viii) CSV கோப்பு - தொடக்கத்தில் இடம் கொண்ட தரவுகள்
(ix) CSV கோப்பு - மேற்கோளுடன் கூடிய தரவுகள்
(x) CSV கோப்பு - தனிப்பயன் பிரிப்பான கொண்ட தரவு.
கொடாநிலை பிரிப்பான் காற்புள்ளியுடன் கூடிய CSV (,) கோப்புகள் :
பின்வரும் நிரலானது கொடாநிலை பிரிப்பானான காற்புள்ளியுடன் கூடிய
"sample1.csv" என்ற கோப்பினை படித்து ஒவ்வொரு வரிசையாக அச்சிடும் நிரல்.
#importing csv
import csv
#opening the csv file which is in different location with read
mode
with open('c:\\pyprg\\sample1.csv', 'r') as F:
#other way to open the file is f= ('c:\\pyprg\\ samplel.csv',
'r')
reader = csv.reader(F)
# printing each line of the Data row by row
print(row)
F.close()
வெளியீடு
['SNO', 'NAME', 'CITY']
['12101', 'RAM', 'CHENNAI']
['12102', 'LAVANYA', 'TIRUCHY']
('12103', 'LAKSHMAN', 'MADURAI')
CSV கோப்பினை Dictionary படிக்க:
(i) CSV செயற்கூறிலுள்ள DictReader இனக்குழுவை பயன்படுத்தி CSV கோப்பை
படித்தல். இதன் செயல்பாடு reader() இனக்குழு செயல்பாட்டை . ஒத்திருக்கும். ஆனால் இது
ஒரு பொருளை உருவாக்கி அதை Dictionaryயில் இணைக்கும்.
(ii) DictReader CSV கோப்பில் உள்ள முதல் வரியை காற்புள்ளியை இந்த வரியின்
Dictionary திறவுகோள் (Dictionary Key) பயன்படுத்தி படிக்கும். அடுத்தடுத்துள்ள வரிசையில்
உள்ள நெடுவரிசையானது Dictionaryயின் மதிப்புகளாக செயல்பட்டு அவற்றை உரிய திறவுக கோள்
மூலம் அணுக முடியும் (புலத்தின் பெயர்).
(iii) CSV கோப்பின் முதல் வரிசையானது புலப்பெயரை கொண்டிருக்கவில்லையெனில்
புலப்பெயர் அளபுருவை DictReader's ஆக்கிக்கு அனுப்பி Dictionary திறவு கோள்களை நாமாக
ஒதுக்க முடியும்.
(iv) csv.reader() மற்றும் DictReader() க்கு இடையேயான முக்கிய வேறுபாட்டை
எளிமையாக கூறுவதெனில் csv.reader மற்றும் CSV.writer ஆனது பட்டியல் (list/ tuple) பதிவுடன்
வேலை செய்யும். CSV. DictReader மற்றும் csv.DictWriter ஆனது அகராதியில் வேலை செய்யும்.
import csv
filename = c:\\pyprg\\sample8.csv'
input_file=csv.DictReader(open(filename,'r'))
for row in input_file:
print(dict(row)) - #dict() to print data
வெளியீடு
{"ItemName *: 'Keyboard', 'Quantity': '48"}
{ ItemName : 'Monitor', Quantity': 52'}
{ ItemName : 'Mouse , Quantity': 20'}
(v) csv.DictReader மற்றும் csv.DictWriter இரண்டும் கூடுதல் அளபுருவாக
புலப்பெயரினை பெற்று Dictionary திறவுகோளாக பயன்படுத்தும். (எடுத்துக்காட்டாக)
"sample8.csv" என்ற கோப்பானது Dictionary -யை படித்தல்.
(vi) செயல்முறை: மேலே கொடுக்கப்பட்டுள்ள நிரலில் dict() செயல்கூறில்
நீக்கவும் மற்றும் print(row) பயன்படுத்தவும். கீழே கொடுக்கப்பட்டுள்ள வெளியீடை தரும்.
OrderedDict [(ItemName', Keyboard'), (Quantity', 48')]
OrderedDict [('ItemName', Monitor'), (Quantity', 52')]
OrderedDict [('ItemName','Mouse'), (Quantity', 20')]
4. தனிப்பயனாக்கம் பிரிப்பானுடன்
கூடிய CSV கோப்பை எழுதுவதற்கான பைத்தான் நிரலை எழுதுக.
விடை . import csv
info = [['SNO', 'Person', 'DOB'],
['1', 'Madhu', '18/12/2001'], .
[2', ‘Sowmya','19/2/1998'],
[3', 'Sangeetha','20/3/1999'],
[4', ‘Eshwar', '21/4/2000'],
[5', 'Anand', '22/5/2001']
csv.register_dialect('myDialect',quoting=csv. QUOTE_ALL)
with open('c:\\pyprg\\ch13\\person.csv','w') as f:
writer = csv.writer(f, dialect='myDialect')
for row in info:
writer.writerow(row)
f.close()
5. CSV கோப்பிலுள்ள தரவை வடிவமைப்பதற்கு
பின்பற்ற வேண்டிய விதிமுறைகளை எழுதுக.
விடை. CSV கோப்பிலுள்ள தரவை வடிவூட்டம் செய்ய பின்பற்ற வேண்டிய விதிமுறைகள்
(i) ஒவ்வொரு வரிசையும் (தரவின் வரிசை) புதிய வரியில் இருத்த அந்த வரியை
நுழைவு பொத்தானை அழுத்த வேண்டும்.
எடுத்துக்காட்டு :
Xxx,yyy
என்ற குறியீடானது நுழைவு விசையை குறிக்கும்.
(ii) கோப்பினில் உள்ள கடைசி பதிவானது வரிமுறிவு/வரி செலுத்தி பிரிப்பானைக்
கொண்டிருக்கலாம் அல்லது இல்லாமலும் இருக்கலாம்.எடுத்துக்காட்டாக:
ppp, qqq
yyy, XXX
(iii) சாதாரண பதிவு வரிசைகளின் வடிவங்களை போன்று கோப்பின் முதல் வரிசையில்
தோன்றக்கூடிய விருப்பத்தலைப்பு வரிசை இருக்கலாம். கோப்பின் தலைப்பானது புலங்களின் தொடர்புடைய
பெயரினை கொண்டிருக்க வேண்டும். மேலும் பதிவுகளிலுள்ள புலங்களின் எண்ணிக்கையில் மீதமுள்ள
கோப்பில் இருத்தல் வேண்டும்.
எடுத்துக்காட்டு
aaa,bbb,ccc
zzz,yyy,xxx CRLF(Carriage Return and Line Feed)
(iv) தலைப்பு மற்றும் ஒவ்வொரு பதிவிலும் ஒன்று அல்லது அதற்கு மேற்பட்ட
புலங்கள் காற்புள்ளியால் பிரிக்கப்பட்டிருக்கலாம். இடைவெளியானது புலத்தின் ஒரு பகுதியான
கருதப்படும் மேலும் நிராகரிக்கப்பட மாட்டாது. பதிவின் கடைசி காற்புலத்தை தொடர்ந்து
காற்புள்ளி இடம் பெறல் கூடாது. எடுத்துக்காட்டு: Red , Blue
(v) ஒவ்வொரு புலமும் இரட்டை மேற்கோள் குறிகளுக்குள் கொடுக்கப்படலாம்
அல்லது கொடுக்கப்படாமல் இருக்கலாம். புலமானது தரப்படவில்லையெனில், புலங்களில் இரட்டை
மேற்கோள் குறியானது தோன்றாது: எடுத்துக்காட்டு:
"Red","Blue","Green" # - இரட்டை
மேற்கோள் குறிகளுடன் உள்ள புலத்தின் தரவு
Black, White, Yellow # இரட்டை மேற்கோள் குறிகள் இல்லாத புலத்தின் தரவு
(vi) புலங்களில் வரிதிருப்பி (CRLF), இரட்டை மேற்கோள் குறி மற்றும்
காற்புள்ளி போன்றவைகளை கொண்டிருந்தால் அவைகள் இரட்டை மேற்கோள் குறிகளுக்குள் கொடுக்கப்பட
வேண்டும். எடுத்துக்காட்டு: Red, ",", Blue CRLF # காற்புள்ளியே ஒரு புலத்தின்
மதிப்பாக இருப்பதால் அதை இரட்டை மேற்கோள் குறிக்குள் கொடுக்கப்பட வேண்டும்.
Red, Blue , Green
(vii) புலமானது இரட்டை மேற்கோள் குறிக்களுக்குள் கொடுக்கப்பட்டிருக்க
வேண்டுமெனில், இரட்டை மேற்கோள் குறிகளுக்குள் உள்ள புலமானது மற்றொரு இரட்டை மேற்கோள்
குறிகளுக்குள் அமைக்கப்பட வேண்டும்.
Red, ""Blue'''', Green # இரட்டை மேற்கோள்குறி ஒரு புலத்தின்
மதிப்பாக இருப்பதால் அதை மற்றொரு இரட்டை மேற்கோள் குறிக்குள் அமைக்கப்பட வேண்டும்.
, , White