>>> f = open('text.txt')
>>> f.read(1)
'H'
>>> f.read()
'ello world!\nThe end.\n\n'
Тағы бір тәсілі – файлды - for циклін қолдану арқылы файлды жол жолымен оқу:
>>> f = open('text.txt')
>>> for line in f:
... line
...
'Hello world!\n'
'\n'
'The end.\n'
'\n'
Файлға жазу. Файлға келесі тізімді жазуды орындап көрейік:
>>> l = [str(i)+str(i-1) for i in range(20)]
>>> l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1312', '1413', '1514', '1615', '1716', '1817', '1918']
Файлды жазу үшін ашу:
>>> f = open('text.txt', 'w')
Файлға жазу write әдісі арқылы жүзеге асырылады. Ол келесі 26-суретте көрсетілген:
>>> for index in l:
... f.write(index + '\n')
...
4
3
3
3
3
Сурет 22 Write әдісі арқылы файлға жазу
Жоғарыда көрсетілген жазбалардан: write әдісі жазылған символдардың санын қайтарады [17].
Файлмен жұмыс жасап болған соң оны міндетті түрде close әдісі арқылы жабу керек:
>>> f.close()
Енді осы тізімді құрылған файлдан қайта жасауға тырысайық. Ол үшін файлды оқу үшін ашып жолдарын оқу керек.
>>> f = open('text.txt', 'r')
>>> l = [line.strip() for line in f]
>>> l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1312', '1413', '1514', '1615', '1716', '1817', '1918']
>>> f.close()
Жоғарыда көрсетілгендей қайта сол тізім алынды. Күрделірек жағдайда жазу алгоритмін ойлап табу қиынға соғады. Сондықтан Python тілінде ондай жағдайлар үшін баяғыдан pickle немесе json сияқты құралдары ойлап табылған. Олар файлда анағұрлым күрделі құрылымдарды сақтауға мүмкіндік береді [17].
Дәріс №6 Дәріс тақырыбы: Сандық алгоритмдер. Матрицалық есептеулер. Дәрістің мақсаты: Сандық алгоритмдер мен матрицалық есептеулерді қарастыру. Тақырып бойынша қарастырылатын сұрақтар: Numeric Python.
Numeric Модулі.
Массивті құру.
1. Numeric Python.
Бұл бөлім жеткілікті дәрежеде ескірген. Қазір модуль numpy деп аталады. Жалпы, Numeric-те болған барлық numpy-да қол жетімді, бірақ аттар сәйкес келмеуі мүмкін. Numeric NumPy/oldnumeric сияқты қол жетімді. Сіздің құжаттама. Numeric Python - көптеген сандық қосымшалар үшін қажетті көп өлшемді массивтерді есептеу үшін бірнеше модуль. Numeric модулі MatLab, Octave (MATLAB аналогы), APL, J, S+, ID сияқты пакеттер мен жүйелердің Python мүмкіндіктерін енгізеді. Пайдаланушылар Numeric-ті оңай және ыңғайлы табады. Кейбір Python синтаксистік мүмкіндіктері (кесіктерді пайдаланумен байланысты) Numeric үшін арнайы әзірленген.
Numeric Python үшін құралы бар:
матрицалық есептеулер;
FFT Фурье жылдам түрлендіру;
жетіспейтін ma эксперименталдық деректермен жұмыс істеу;
RNG статистикалық модельдеу;
MatLab бағдарламасының негізгі функцияларының эмуляциясы.
Numeric Модулі.
Numeric модулі толымды түрді анықтайды-массив және массив операцияларына арналған функциялардың көп санын қамтиды. Массив-бұл индекстер бойынша қолжетімді біртекті элементтер жиынтығы. Numeric Модулінің массивтері көп өлшемді, яғни бір мөлшерден артық болуы мүмкін.
Массивті құру.
Массивті жасау үшін, массивтің мазмұнын (ішкі тізімдер түрінде) және түрін көрсете отырып, array () функциясын пайдалануға болады. Array() функциясы дәлел - массив болса, көшірмесін жасайды. As array() функциясы ұқсас жұмыс істейді, бірақ оның аргументі массиві болған кезде жаңа массив жасамайды:
>>> from Numeric import *
>>> print array([[1, 2], [3, 4], [5, 6]])
[[1 2]
[3 4]
[5 6]]
>>> print array([[1, 2, 3], [4, 5, 6]], float)
[[ 1. 2. 3.]
[ 4. 5. 6.]]
>>> print array([78, 85, 77, 69, 82, 73, 67], 'c')
[N U M E R I C]
Массив элементтері ретінде келесі түрлерді пайдалануға болады: Int8-Int32, Unsigned Int 8-Unsigned Int32, Float 8-Float64, Complex8-Complex64 және PyObject. 8, 16, 32 және 64 сандар шаманы сақтауға арналған биттердің санын көрсетеді. Int, Unsigned Integer, Float және Complex түрлері осы платформада қабылданған мәндерге сәйкес келеді . Массивте сондай-ақ еркін нысандарға сілтемелерді сақтауға болады .
Әрбір ось бойынша массив мөлшері мен ұзындығы массив формасы (shape) деп аталады . Массив пішініне қол жеткізу shape атрибуты арқылы жүзеге асырылады:
Дәріс №9 Дәріс тақырыбы: Web-қосымшаларды әзірлеу. Дәрістің мақсаты: Web-қосымшаларды әзірлеуді қарастыру. Тақырып бойынша қарастырылатын сұрақтар: 1. CGI сценарийлері. 2. CGI модулі.
Www-браузерде HTML және XML-құжаттарды басқаратын негізгі интерфейсі жұмыс істейтін бағдарлама web-қосымша деп түсініледі. Сапасын жақсарту үшін пайдаланушы интерфейсінің жиі қолданады JavaScript, алайда бұл бірнеше төмендетеді әмбебаптығы интерфейс. Айта кету керек, интерфейс құруға болады Java - немесе Flash-апплетах, алайда, мұндай қосымшалар қиын деп атауға web-қосымшаларда, себебі Java немесе Flash пайдалана алады өз хаттамалар қарым-қатынас жасау үшін, сервер, ал стандартты емес үшін WWW хаттама HTTP.
Web-қосымшаларды құру кезінде пішін (сыртқы түрі, стилі), мазмұны мен деректерді өңдеу логикасын бөлуге тырысады. Web-сайттарды құрудың заманауи технологиялары осы идеалға өте жақын болуға мүмкіндік береді. Дегенмен, көп деңгейлі қосымшаларды қолданбай да, басқаларды қозғамай (немесе қозғамай), осы аспектілердің кез келгенін өзгертуге мүмкіндік беретін стильді ұстануға болады. Бұл тақырыпты талқылау әзірлеу ортасына арналған бөлімде жалғасатын болады.
1. CGI сценарийлері. Www үшін қосымшаларды жасаудың классикалық жолы-CGI сценарийлерін жазу (кейде скрипттер айтады). CGI ( Common Gateway Interface, жалпы шлюздік интерфейс) - бұл сервердің сыртқы қосымшалармен өзара әрекеттесуін регламенттейтін стандарт. WWW болған жағдайда, web-сервер белгілі бір сценарий бойынша бетті генерациялау сұрауын жібере алады. Бұл сценарий web-серверден (сол, өз кезегінде, оларды пайдаланушыдан ала алады) кіріс деректерді алып, дайын нысанды (сурет, аудиодер, стильдер кестесі және т.б.) генерациялайды.
Сценарийді шақырған кезде Web-сервер оған ақпаратты стандартты енгізу, орта айнымалылары арқылы және ISINDEX үшін командалық жолдың аргументтері арқылы (олар sys арқылы қол жетімді.argv ).
Web-серверге (және CGI-сценарийге) - GET және POST браузерде толтырылған формадан деректерді берудің екі негізгі әдісі. Әдісіне байланысты деректер әртүрлі беріледі. Бірінші жағдайда олар кодталады және тікелей URL-ге орналастырылады, мысалы: http://example.com/cgi-bin/a.cgi?a=1&b=3. Сценарий оларды QUERY_STRING атымен айнымалыға алады. POST әдісі жағдайында олар стандартты енгізуге беріледі.
Ол үшін, егер бұл сервердің конфигурациясы рұқсат етілсе, HTML құжаттары арасында кез-келген орында. Сценарий орындалуының белгісі болуы тиіс. Unix жүйесінде оны chmod a+x пәрменімен орнатуға болады.
Келесі қарапайым сценарий os сөздігінен мәндерді шығарады.environ және оған не берілгенін көруге мүмкіндік береді:
#!/usr/bin/python
import os
print """Content-Type: text/plain
%s""" % os.environ
Оның көмегімен Web-сервермен орнатылған орта айнымалыларын көруге болады. Web-сервердің CGI сценарийімен берілетін файл метаақпараттық өрістер (мазмұн түрі, құжаттың соңғы жаңартылу уақыты, кодтау және т.б .) көрсетілген тақырып бөлігін қамтиды.
Сценарийлерді жасау үшін жеткілікті негізгі орта айнымалылары:
QUERY_STRING Сұраныс жолы.
REMOTE_ADDR Клиенттің IP-мекенжайы.
REMOTE_USER Клиенттің аты (егер ол сәйкестендірілсе).
SCRIPT_NAME Сценарий атауы.
SCRIPT_FILENAME Сценарийі бар Файл атауы.
SERVER_NAME Сервер аты.
HTTP_USER_AGENT Клиент браузерінің атауы.
REQUEST_URI Сұрау жолы (URI).
HTTP_ACCEPT_LANGUAGE Құжаттың қажетті тілі.
Мұнда os сөздігі болуы мүмкін.environ CGI сценарийінде: {
'DOCUMENT_ROOT': '/var/www/html',
'SERVER_ADDR': '127.0.0.1',
'SERVER_PORT': '80',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT_LANGUAGE': 'en-us, en;q=0.50',
'REMOTE_ADDR': '127.0.0.1',
'SERVER_NAME': 'rnd.onego.ru',
'HTTP_CONNECTION': 'close',
'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; U; Linux i586; en-US;
rv:1.0.1) Gecko/20021003',
'HTTP_ACCEPT_CHARSET': 'ISO-8859-1, utf-8;q=0.66, *;q=0.66',
'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,
text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,
image/gif;q=0.2,text/css,*/*;q=0.1',
'REQUEST_URI': '/cgi-bin/test.py?a=1',
'PATH': '/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin',
'QUERY_STRING': 'a=1&b=2',
'SCRIPT_FILENAME': '/var/www/cgi-bin/test.py',
'HTTP_KEEP_ALIVE': '300',
'HTTP_HOST': 'localhost',
'REQUEST_METHOD': 'GET',
'SERVER_SIGNATURE': 'Apache/1.3.23 Server at rnd.onego.ru Port 80',
'SCRIPT_NAME': '/cgi-bin/test.py',
'SERVER_ADMIN': 'root@localhost',
'SERVER_SOFTWARE': 'Apache/1.3.23 (Unix) (Red-Hat/Linux)
mod_python/2.7.8 Python/1.5.2 PHP/4.1.2',
'SERVER_PROTOCOL': 'HTTP/1.0',
'REMOTE_PORT': '39251'
}
Келесі CGI-сценарий қара квадрат береді (онда суреттерді өңдеу үшін Image модулі қолданылады): #!/usr/bin/python