Erinevus lehekülje "Python" redaktsioonide vahel

Allikas: Kuutõrvaja
(HTTP)
(HTTP)
47. rida: 47. rida:
 
  print r1.getheader('last-modified')
 
  print r1.getheader('last-modified')
  
Lihtsa HTTP serveri saab käivitada selliselt
+
Lihtsa HTTP serveri, mis serveerib üle HTTP käesoleva kataloogi sisu, saab käivitada selliselt
  
 
   $ python -m SimpleHTTPServer 8080
 
   $ python -m SimpleHTTPServer 8080

Redaktsioon: 24. veebruar 2010, kell 21:13

Sissejuhatus

Python http://www.python.org/ ...

2010 aastal on levinud kasutada kahte erinevat Pyhton keele põlvkonda, sõltuvalt kasutusalast võib see olla oluline, kumba konkreetsel juhul eelistada

  • 2.x - pikka aega kasutuses olnud versioon, suhteliselt palju tarkvara töötab sellega
  • 3.x - uuem versioon, nt teksti vs binari failide käsitluse osa on oluliselt muutunud

Failioperatsioonid

Tekstifailist lugemiseks sobib kasutada nt sellist järgnevust

for rida in open ('urlid.txt'):
  print rida.rstrip()

kus

  • rstrip() eemaldab rea lõpust reavahetuse märgi
  • lugemine toimub for tsükli abil rida haaval

Tekstifaili kirjutamiseks sobib kasutada nt sellist järgnevust

read=('loomaaed.tartu.ee', 'kuutorvaja.eenet.ee', 'www.eesti.ee')
myfile = open ('urlid','w')

for rida in read:
  myfile.write (rida + '\n')

myfile.close()

kus

  • read - on tuple element, mis on massiivi moodi konstruktsioon, kuid mille sisu ei saa peale moodustamist muuta
  • kirjutamine toimub for tsüki abil rida haaval

HTTP

Skript http päringu vastuse päise elemendi esitamiseks

import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
r1 = conn.getresponse()
print r1.getheader('last-modified')

Lihtsa HTTP serveri, mis serveerib üle HTTP käesoleva kataloogi sisu, saab käivitada selliselt

 $ python -m SimpleHTTPServer 8080
 Serving HTTP on 0.0.0.0 port 8080 ...

SMTP

Skript saadab smtp serveri kaudu välja kirja

import smtplib

fromaddr = "From: Priit Kask <priit@loomaaed.tartu.ee>"
toaddrs  = "To: Mart Kask <mart@loomaaed.tartu.ee>"

msg = fromaddr + "\n" + toaddrs + "\nSubject: test" + "\nkirja sisu"

server = smtplib.SMTP('192.168.1.250')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

Massiiv, for ja try/except/else konstruktsioon

Skript

  • kirjeldab massiivi URLID
  • käib läbi massiivis URLID toodud hostide /index.html ressursid
  • kui ressursi poole ei õnnestu pöörduda püütakse see try/except poolt kinni
import httplib

URLID = ('www.python.org',
         'kuutorvaja.eenet.ee',
         'seda.pole')

for i in URLID:
  try:
    conn = httplib.HTTPConnection(i)
    conn.request("GET", "/index.html")
  except:
    print "ei saa avada http://" + i + "/index.html"
  else:
    r1 = conn.getresponse()
    print i + " " + r1.getheader('content-length')

Käivitamisel esitatakse nt selline väljund

$ python for.py
www.python.org 16961
kuutorvaja.eenet.ee 267
ei saa avada http://seda.pole/index.html

Unicode

Skript UTF-8 formaadis faili kirjutamiseks (sisuks on Ä ja à tähed)

file = open('utf8data.txt', 'w', encoding='utf-8')
size = file.write('\xc4\xc3\n')
file.close ()

Kasulikud lisamaterjalid