Skip to content

Commit df1ab45

Browse files
author
uralbash
committed
add lec7, 8, 9
1 parent 9d0fe78 commit df1ab45

27 files changed

+538
-0
lines changed

lec6/__init__.py

Whitespace-only changes.

lec6/csv_dict_example.csv

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Имя,Отчество,Фамилия
2+
Иван,Иванович,Иванов
3+
Василий,Васильевич,Васильев

lec6/csv_example.csv

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Имя,Фамилия,Отчество
2+
Иван,Иванов,Иванович
3+
Василий,Васильев,Васильевич

lec6/csv_example.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# coding: utf-8
2+
3+
# Пример работы с CSV файлом
4+
5+
import csv
6+
from StringIO import StringIO
7+
8+
def main():
9+
sample_data = StringIO(
10+
'Имя,Фамилия,Отчество\n'
11+
'Иван, Иванов, Иванович\n'
12+
'Василий, Васильев, Васильевич\n'
13+
)
14+
sample_obj = [
15+
("Имя", "Фамилия", "Отчество"),
16+
("Иван", "Иванов", "Иванович"),
17+
("Василий", "Васильев", "Васильевич"),
18+
]
19+
20+
csv_file = open('csv_example.csv','w')
21+
22+
csv_reader = csv.reader(sample_data)
23+
csv_writer = csv.writer(csv_file)
24+
25+
for row in csv_reader:
26+
print '|'.join(row)
27+
28+
csv_writer.writerows(sample_obj)
29+
30+
print '=' * 10, 'В виде словаря', '=' * 10
31+
32+
sample_data.seek(0)
33+
csv_reader_dict = csv.DictReader(sample_data)
34+
35+
for d in csv_reader_dict:
36+
print d
37+
for k,v in d.items():
38+
print "%s: %s" % (k,v)
39+
40+
sample_dict = [
41+
{'Имя': 'Иван',
42+
'Фамилия': 'Иванов',
43+
'Отчество': 'Иванович'},
44+
45+
{'Имя': 'Василий',
46+
'Фамилия': 'Васильев',
47+
'Отчество': 'Васильевич'},
48+
]
49+
50+
csv_dict_file = open('csv_dict_example.csv', 'w')
51+
52+
csv_writer_dict = csv.DictWriter(csv_dict_file,
53+
sorted(sample_dict[0].keys()))
54+
55+
csv_writer_dict.writeheader() # python 2.7+
56+
csv_writer_dict.writerows(sample_dict)
57+
58+
csv_dict_file.close()
59+
csv_file.close()
60+
61+
if __name__ == "__main__":
62+
main()

lec6/json_example.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# coding: utf-8
2+
3+
# Пример работы с JSON
4+
5+
import json
6+
7+
def _gen_data():
8+
import time
9+
import hashlib
10+
import random
11+
12+
t = time.time()
13+
14+
return {
15+
'timestamp': int(t),
16+
'payload': hashlib.md5(str(t + random.random())).hexdigest(),
17+
}
18+
19+
def main():
20+
data = []
21+
for i in range(100):
22+
data.append(_gen_data())
23+
24+
print json.dumps(data, indent=1)
25+
26+
x = '''
27+
{"widget": {
28+
"debug": "on",
29+
"window": {
30+
"title": "Sample Konfabulator Widget",
31+
"name": "main_window",
32+
"width": 500,
33+
"height": 500
34+
},
35+
"image": {
36+
"src": "Images/Sun.png",
37+
"name": "sun1",
38+
"hOffset": 250,
39+
"vOffset": 250,
40+
"alignment": "center"
41+
},
42+
"text": {
43+
"data": "Click Here",
44+
"size": 36,
45+
"style": "bold",
46+
"name": "text1",
47+
"hOffset": 250,
48+
"vOffset": 100,
49+
"alignment": "center",
50+
"onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
51+
}
52+
}}
53+
'''
54+
55+
d = json.loads(x)
56+
57+
print d['widget']['image']['src']
58+
59+
if __name__ == "__main__":
60+
main()

lec6/pickle_example_read.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# coding: utf-8
2+
3+
# Чтение данных из pickle
4+
5+
import cPickle as pickle
6+
7+
from pickle_example_write import State
8+
9+
def main():
10+
obj = None
11+
pickled_obj = ''
12+
with open('pickle_example.pickle') as f:
13+
pickled_obj = f.read()
14+
15+
obj = pickle.loads(pickled_obj)
16+
17+
print type(obj)
18+
print obj.get_initials()
19+
20+
21+
if __name__ == "__main__":
22+
main()

lec6/pickle_example_write.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# coding: utf-8
2+
3+
# Запись обекта в pickle
4+
5+
import cPickle as pickle
6+
7+
class State(object):
8+
def __init__(self, first_name,
9+
third_name,
10+
second_name=''):
11+
self.first_name = first_name.decode('utf-8')
12+
self.second_name = second_name.decode('utf-8')
13+
self.third_name = third_name.decode('utf-8')
14+
15+
def get_initials(self):
16+
tn = self.third_name.lower().capitalize()
17+
fn = self.first_name[0].capitalize()
18+
if self.second_name:
19+
sn = self.second_name[0].capitalize()
20+
else:
21+
sn = ''
22+
return "%s%s%s" % (tn, fn, sn)
23+
24+
def main():
25+
s = State("Иван", "Иванов", "Иванович")
26+
print s.get_initials()
27+
pickled_data = pickle.dumps(s)
28+
with open('pickle_example.pickle', 'w') as f:
29+
f.write(pickled_data)
30+
31+
if __name__ == "__main__":
32+
main()

lec6/shelve_example.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# coding: utf-8
2+
3+
# Использование модуля shelve для хранения данных
4+
5+
import shelve
6+
import random
7+
8+
def main():
9+
db = shelve.open('example_db.shlv')
10+
print db.keys()
11+
print db.values()
12+
13+
for i in range(5):
14+
db[str(random.random())] = 'test shelve'
15+
16+
if __name__ == "__main__":
17+
main()

lec6/sqlite3_example.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# coding: utf-8
2+
3+
import sqlite3
4+
5+
def main():
6+
con = sqlite3.connect('db.sqlite3')
7+
8+
c = con.cursor()
9+
10+
c.execute('''create table stocks (
11+
date text,
12+
trans text,
13+
symbol text,
14+
qty real,
15+
price real)''')
16+
17+
for t in [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
18+
('2006-04-05', 'BUY', 'MSOFT', 1000, 72.00),
19+
('2006-04-06', 'SELL', 'IBM', 500, 53.00),
20+
]:
21+
c.execute('insert into stocks values (?,?,?,?,?)', t)
22+
23+
c.execute('select * from stocks where symbol=? order by price', ('IBM',))
24+
for row in c:
25+
print row
26+
27+
c.execute('select sum(price) as summ from stocks')
28+
for row in c:
29+
print row
30+
31+
32+
if __name__ == "__main__":
33+
main()

lec7/config_example.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# coding: utf-8
2+
3+
import ConfigParser
4+
5+
def main():
6+
conf = ConfigParser.ConfigParser()
7+
conf.read('test.conf')
8+
9+
if conf.has_section('main'):
10+
print conf.getint('main', 'log_size')
11+
12+
if __name__ == "__main__":
13+
main()

0 commit comments

Comments
 (0)