Python tunnis tehtud näited: Difference between revisions
No edit summary |
No edit summary |
||
Line 530: | Line 530: | ||
</source> | </source> | ||
<br> | |||
<source lang="python"> | <source lang="python"> | ||
#!/usr/bin/python | #!/usr/bin/python |
Revision as of 12:38, 8 April 2014
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Johannes Tammekänd - A22, 18.03.2014
# Programm mis võtab käsurea argumendina sisendfaili ning leiab sellest
# sisendfailist kõige pikima sõna ja väljastab selle sõna koos reanumbriga.
import sys
if len(sys.argv) != 2:
print "Argumentide arv on vale!"
print "Kasuta programmi ", sys.argv[0], "sisendfail"
sys.exit(1)
try:
pikim = open(sys.argv[1], 'r')
lookup = max(pikim, key = len)
lookup = max(lookup.split(), key=len)
print lookup
except IOError:
print "Sisendfaili ei saa avada."
with open(sys.argv[1]) as minuFail:
for num, line in enumerate(minuFail, 1):
if lookup in line:
print 'Sõna oli real:', num
print "Programm lõpetas töö"
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Johannes Tammekänd - A22, 18.03.2014
# Programm avab faili, leiab sealt kõige pikema rea ning väljastab selle.
import sys
if len(sys.argv) != 2:
print "Argumentide arv on vale!"
print "Kasuta programmi ", sys.argv[0], "sisendfail"
sys.exit(1)
try:
pikim = open(sys.argv[1], 'r')
lookup = max(pikim, key = len)
print lookup
except IOError:
print "Sisendfaili ei saa avada."
print "Programm lõpetas töö"
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Programm avab faili, leiab sealt kõige pikema rea ning väljastab selle
# Autor: Karl-Martin Karlson
from __future__ import print_function
import sys
#Kontrollib käsurea argumentide arvu
if len(sys.argv) != 2:
print("Argumentide arv on vale!")
print("Kasuta programmi", sys.argv[0], "sisendfail")
sys.exit(1)
failinimi = sys.argv[1]
try:
ifh = open(sys.argv[1], 'r')
except I0Error:
print("Faili ei saanud avada")
sys.exit(1)
reapikkus = 0
pikimrida = "Tere"
ifh=open(failinimi)
while True:
line = ifh.readline()
if reapikkus < len(line):
reapikkus = len(line)
pikimrida = line
if not line:
break
ifh.close()
print (pikimrida)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Skript kontrollib argumentide arvu, avab argumendina antud faili(kontrollides eelnevalt selle
# olemasolu ning õiguseid sellest lugemiseks) ning seejärel prindib pikima rea välja.
# Autor: Marten Mattisen
import sys
if (len(sys.argv) != 2):
print ("Argumentide arv on vale!")
sys.exit(2)
try:
print "Pikim rida:"+max(open(sys.argv[1], 'r'), key=len)
except IOError:
print 'Sisendfail on puudu või pole sellest lugemiseks õiguseid'
sys.exit(1)
print 'Skript on töö lõpetanud.'
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Tere täpiline kommentaar
import sys
print sys.argv[0], sys.argv[1]
print 'Tere maailm!'
muutuja = 5
teine_muutuja = 2.0
print 'jagatis on', muutuja/teine_muutuja
print 'Palun sisesta midagi'
vastus = int(raw_input())
print 'sisestasid', vastus/2.0
if vastus%2 == 0:
print 'vastus on paarisarv'
else:
print 'vastus on paaritu arv'
for i in range(1,9999):
print 'i =',i
while True:
print "sisesta midagi"
a = raw_input()
if a == 'q':
print 'programm lõpetas töö'
sys.exit(0)
Pythoni programm, mis kontrollib, kas arv jagub 10-ga
#!/usr/bin/python
# -*- coding: utf-8 -*-
while True:
print 'Kirjuta mingi arv, mis jagub 10ga'
#raw_input annab stringi, see on vaja teha integer tüüpi
kasutajaarv = int(raw_input())
if kasutajaarv%10 == 0:
break
print 'Jagus! Programm lõpetab!'
Skript väljastab esmalt argumentide arvu ja argumendid (iga argument eraldi real)
#!/usr/bin/python
# -*- coding: utf-8 -*-
#loo skript, mis saab käsurealt 0..n argumenti
#skript väljastab esmalt argumentide arvu ja argumendid (iga argument eraldi real)
import sys
print 'argumentide arv:', len(sys.argv)
for i in sys.argv:
print "Argument: ", i
Pythoni programm, mis väljastab ainult paaritud argumendid
#!/usr/bin/python
# -*- coding: utf-8 -*-
#Loo skript mis saab käsurealt 0..n argumenti
#väljastab kõik paaritud argumendid (iga argument eraldi real)
import sys
for i in sys.argv[1:]:
if int(i)%2 == 0:
pass
else:
print 'Paaritu argument: ', i
Pythoni programm, mis kirjutab faili, kus on 1000 rida ja igal real on juhuarv 1..1000
#!/usr/bin/python
# -*- coding: utf-8 -*-
import random
fo = open("fail.txt", 'w')
for x in range(1, 1001):
ran=str(random.randrange(1,1000+1))
fo.write(ran+'\n')
fo.close()
Skript sorteerib fail.txt-s olevad numbrid ja väljastab uute faili
#!/usr/bin/python
# -*- coding: utf-8 -*-
#Skript sorteerib fail.txt-s olevad numbrid ja väljastab
# uute faili
fo = open("fail.txt", "r" )
fo2 = open("sorteeritud.txt", 'w')
lines = fo.readlines()
results = map(int, lines)
results.sort()
for item in results:
fo2.write("%s\n" % item)
fo.close()
fo2.close()
Skript sorteerib fail.txt-s olevad numbrid ja väljastab uute faili
#!/usr/bin/python
# -*- coding: utf-8 -*-
#Skript sorteerib fail.txt-s olevad numbrid ja väljastab
# uute faili
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
f = open(sys.argv[1], 'r')
lines = f.readlines()
lines.sort(key = int)
f = open('uusfail3.txt', 'w')
for number in lines:
f.write(number)
f.close
Skript sorteerib fail.txt-s olevad numbrid ja väljastab ainult unikaalsed numbrid
#!/usr/bin/python
# -*- coding: utf-8 -*-
#Skript sorteerib fail.txt-s olevad numbrid ja väljastab ainult
# unikaalsed numbrid
fo = open("fail.txt", "r" )
fo2 = open("unikaalsed.txt", 'w')
lines = fo.readlines()
results = map(int, lines)
results2 = list(set(results))
results2.sort()
for item in results2:
fo2.write("%s\n" % item)
fo.close()
fo2.close()
Skript, mis tagastab käsurealt etteantud kasutaja UID
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from pwd import getpwnam
print getpwnam(sys.argv[1]).pw_uid
Skript, mis väljastan NxN ühikmaatriksi
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Väljastab NxN ühikmaatriksi
import sys
import numpy as np
n = float(sys.argv[1])
print np.identity(n)
Skript loeb etteantud teksti failist ridade, sõnade ja tähemärkide arvu
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Skript loeb etteantud teksti failist ridade, sõnade ja tähemärkide arvu
from sys import argv
if len(argv) < 2:
print "Sa ei sisestanud ühtegi argumenti, mida kontrollida"
exit(1)
fh=open(argv[1])
read = fh.readlines()
sonad = 0
tahed = 0
for rida in read:
tahed = tahed + len(rida)
sonad = sonad + len(rida.split())
print "Ridu:" , len(read)
print "Sonu:" , sonad
print "Tähti:" , tahed
fh.close()
Skript loeb etteantud teksti failist ridade, sõnade ja tähemärkide arvu
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Tee skript, mis leiab käsurealt etteantud tekstifaili
# ridade arvu, tähtede arvu ja sõnade arvu ja väljastab ekraanile
import sys
f = open(sys.argv[1], "r" )
lines = f.readlines()
count = 0
sonad = 0
for i in range(0,len(lines)):
count = count + len(lines[i])
sonad = sonad + len(lines[i].split(" "))
print "Ridu:", len(lines)
print "Tähemärke:", count
print "Sõnu:", sonad
f.close()
Skript kirjutab tekstifaili 100 rida rea numbrite ja random sisuga, komadega eraldatult
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Tee skript, mis kirjutab komadega eraldatud tekstifaili 100 rida, igas reas järgnev info:
# rea nr, random nr 1..100, random märk pikkusega 0..32
import sys
import random
import string
f = open(sys.argv[1], "w" )
for i in range(1, 101):
ran=str(random.randrange(1,100+1))
f.write(str(i)+',')
f.write(ran+',')
for j in range(1,random.randrange(1,32+1)):
f.write(random.choice(string.ascii_letters))
f.write('\n')
f.close()
Skript kirjutab ette antud faili 100 rida. Igal real on rea number, suvaline number 1 ja 100 vahel ja suvaline tähemärk, mis on komadega eraldatud
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Skript kirjutab ette antud faili 100 rida. Igal real on rea number, suvaline number 1 ja 100 vahel ja suvaline tähemärk, mis on komadega eraldatud
from sys import argv
from random import randint
import random
letters='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
if len(argv) < 2:
print "Sa ei sisestanud ühtegi argumenti, mida kontrollida"
exit(1)
fh=open(argv[1], "w")
sonad = 0
tahed = 0
for rida in range(100):
fh.write(str(rida+1) + "," + str(randint(1, 101)) + "," + random.choice(letters) + "\n")
fh.close()
Skript saadab meili kasutades smtplib teeki ning on praktiliselt identne StackOverflow lehel asuva koodiga, mille leiab sõnumi sisust.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Üllar Seerme, A21
# 25.03.14
import smtplib
FROM = ""
TO = [""]
SUBJECT = "Hello World!"
TEXT = "Greetings from http://stackoverflow.com/questions/6270782/sending-email-with-python"
MESSAGE = """\
From: %s
To: %s
Subject: %s
%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
server = smtplib.SMTP("mail.itcollege.ee")
server.sendmail(FROM, TO, MESSAGE)
server.quit()
skript saadab meili kasutades smtplib teeki. Süntaksi sain tutorialspoint.com dokumentatsioonidest.
#!/usr/bin/python
#A21 Juri Kononov Ilma autentimist meili saatmine
import smtplib
smtplib.SMTP('mail.itcollege.ee').sendmail('kellelt@itcollege.ee', 'kellele@itcollege.ee', "emaili sisu")
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Autor: Karl-Martin Karlson
# Rühm: A21
# Skript saadab enda sisu valitud meili aadressile
import smtplib
with open(__file__) as f:
msg = f.read()
print "Message length is " + repr(len(msg))
server = smtplib.SMTP("172.16.0.160", 25)
server.sendmail("saatja@itcollege.ee", "saaja@itcollege.ee", msg)
server.quit()
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Skript läheb ette antud veebilehele ning kopeerib
# kõik leitud URlid lingid.txt faili
import urllib2
import re
import sys
if len(sys.argv) != 2:
print("Argumentide arv on vale!")
print("Kasuta programmi", sys.argv[0], "sisendfail")
sys.exit(1)
url = sys.argv[1]
f = open('lingid.txt','w')
page = urllib2.urlopen(url)
page = page.read()
links = re.findall(r"<a.*?\s*href=\"(.*?)\".*?>(.*?)</a>", page)
for link in links:
f.write('%s \n' % (link[0]))
f.close()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Johannes Tammekänd - A22 - 25.03.14
# Leiab etteantud URL'i lähtekoodist kõik lingid.
import urllib2
import sys
if len(sys.argv) != 2:
print "Argumentide arv on vale!"
print "Kasuta programmi ", sys.argv[0], "http://www.veebiaadress.com"
sys.exit(1)
from BeautifulSoup import BeautifulSoup
page = urllib2.urlopen(sys.argv[1])
soup = BeautifulSoup(page.read())
links = soup.findAll("a")
for link in links:
print link["href"]
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Imre Lebedev - A22 - 08.04.2014
# Võtab sisendfailiks logifaili ja kirjutab logifaili väljudnisse järgmiselt
# Et logifaili ajad hakkaks enda aega lugema esimese logirea järgi
import sys
import re
import datetime
if len(sys.argv) != 2:
print("Argumentide arv on vale!")
print("Kasuta programmi", sys.argv[0], "sisendfail")
sys.exit(1)
try:
fh = open('/home/valjunddomeen.txt','w')
except IOError:
print "Väljundfail on juba olemas või ei ole sinna võimalik kirjutada"
sys.exit(1)
try:
f = open(sys.argv[1],'r')
except IOError:
print "Sisendfail puudub või ei ole piisavalt õigusi selle avamiseks"
sys.exit(1)
for line in f:
try:
info=line.split("@")[1]
fh.write(info)
except IOError:
print "Faili sisse ei õnnestu kirjutada"
f.close()