Python tunnis tehtud näited

From ICO wiki
Revision as of 10:12, 12 May 2015 by Eprudnik (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
#!/usr/bin/python
#  -*- coding: utf-8 -*-
from __future__ import print_function
from __future__ import unicode_literals
#Elina Prudnikova A21, 12.05.2015
#1. Skript loeb failist numbrid
#2. Kui number jagub 3 siis prindib numbri

#exit 1 - Argumentide arv vale
#exit 2 - Aisendfaili ei õnnestu lugeda

import sys

if len(sys.argv) != 2:
	print ("Käsurea argumente peab olema 1")
	sys.exit(1)

try:
    sisend = open(sys.argv[1])

except IOError:
    print ('Sisendfaili, sys.argv[1], ei saa avada')
    sys.exit(2)

for line in sisend.readlines():
    line = line.strip()
    if line:
        line2=float(line)
        if line2 % 3 == 0:
            print (line)


#!/usr/bin/python
#  -*- coding: utf-8 -*-
from __future__ import print_function
from __future__ import unicode_literals

import sys
import urllib2


print("See on tehtud IDET kasutades")

print(sys.argv)
print(len(sys.argv))

if len(sys.argv) != 2:
    print("Kasuta programmi ...")
    sys.exit(1)


print("programm lõpetas töö")

try:
    fh = open(sys.argv[1], 'r')
    for line in fh.readlines():
        a_line = line.split(',')
        print("URL:", a_line[0], "String", a_line[1])
        try:
            u = urllib2.urlopen(a_line[0])
            sisu = u.read()
            print("Srtingi leidsin", sisu.count(a_line[1].strip()), "korda")
        except Exception:
            print("URLi avamine ebaõnnestus")
        print("URL:", a_line[0], "String", a_line[1])

except IOError:
    print("Faili avamine ebaõnnestus")


#!/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()


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Johannes Tammekänd, A22
# Skript, mis loeb sisendfailist emailid ja väljundfaili kirjutab emaili domeenid.

import sys

if len(sys.argv) != 3:
	print "Argumentide arv on vale!"
	print "Kasuta programmi ", sys.argv[0], "Sisendfail Väljundfail"
	sys.exit(1)

try:
	input_file = open(sys.argv[1], 'r')
except IOError: 
	print "Sisendfaili ei saa avada."

try:
	output_file = open(sys.argv[2], 'w')
except IOError:
	print "Väljundfaili ei saa kirjutada."

for line in input_file.readlines():
	print line
	line = line.split("@")[1]
	output_file.write(line)


#!/usr/bin/python
#  -*- coding: utf-8 -*-
# Autor Karl Männil
# Programm kontrollib kas on võimalik avada käsurealt sisestatud parameetrite nimelisi faile
from __future__ import print_function
from __future__ import unicode_literals

import sys

# Kontrollime kas programmil on piisavalt argumente (vaja on kolme aga programm ise on ka parameeter)
# Vajadusel pahandame kasutajaga ning õpetame teda!
if len(sys.argv) != 4:
    print("Kasuta programmi vähemalt kolme parameetriga")
    sys.exit(1)
print("Programm lõpetas töö")

# Proovime kas saame avada faili mis sisestati esimese parameetrina (tegelikult parameeter 2), kirjutame ka staatuse
try:
    fh = open(sys.argv[1],'r')
    print ("Faili nimega ", sys.argv[1], "saab avada")
except IOError:
    print("Sisendfaili ei saa avada")

# Proovime kas saame avada faili mis sisestati teise parameetrina (tegelikult parameeter 3), kirjutame ka staatuse
try:
    fh = open(sys.argv[2],'r')
    print ("Faili nimega ", sys.argv[2], "saab avada")
except IOError:
    print("Sisendfaili ei saa avada")

# Proovime kas saame avada faili mis sisestati kolmanda parameetrina (tegelikult parameeter 4), kirjutame ka staatuse
try:
    fh = open(sys.argv[3],'r')
    print ("Faili nimega ", sys.argv[3], "saab avada")
except IOError:
    print("Sisendfaili ei saa avada")
#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import print_function
from __future__ import unicode_literals

import sys
import urllib2
import time


if len(sys.argv) != 3:
    print("Vale argumentide arv!")
    sys.exit(1)
#ava väljundfail kirjutamiseks argument 3
try:
    fhw = open(sys.argv[2], 'w')

except IOError:
    print("Väljundfaili avamine ebaõnnestus!")
    sys.exit(2)



try:
    fhr = open(sys.argv[1], 'r')
    for line in fhr.readlines():
        a_line = line.split(",")
        try:
            u = urllib2.urlopen(a_line[0])
        except Exception:
            print(a_line[0], "URL avamine ebaõnnestus")
        sisu=u.read()
        arv=sisu.count(a_line[1].strip())
        if arv > 0:
            tekst = "URL: "
            tekst += str(a_line[0])
            tekst += " Fraas: "
            tekst += str(a_line[1].strip())
            tekst += " "
            tekst += time.strftime("%Y-%m-%d %H:%M:%S")
            tekst += " OK"
            tekst += "\n"
            # noinspection PyTypeChecker
            fhw.write(tekst)
        else:
            tekst="URL: "
            tekst+=str(a_line[0])
            tekst+=" Fraas: "
            tekst+=str(a_line[1].strip())
            tekst += " "
            tekst += time.strftime("%Y-%m-%d %H:%M:%S")
            tekst+=" NOTOK"
            tekst+="\n"
            fhw.write(tekst)


except IOError:
    print("Sisendfaili ei saanud avada")
    sys.exit(1)