Python tunnis tehtud näited

From ICO wiki
Revision as of 12:59, 25 March 2014 by Jkononov (talk | contribs)
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/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()
#!/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")