python

Programovacie jazyky, rady, poradňa...
woooody
Amateur
Amateur
Príspevky: 11
Registrovaný: 12 jún 2010, 11:40

python

Príspevok od používateľa woooody »

hello. som zaciatocnik ucim sa python a s pomocou som si napisal program na rozlustenie jednoduchej sifry : "09I03M07A16N05 02A14H08D12Y01M15O06R10 04E11P13T" , program vyzera takto :
import re

veta='09I03M07A16N05 02A14H08D12Y01M15O06R10 04E11P13T'

sifra = re.findall('(..)(.)',veta)
sifra.sort()
print ''.join([y for(x,y)in sifra])

chcel by som ale aby mi tuto sifru nacitalo zo suboru.txt program som spravil takto :

import re

subor = file('subor.txt', 'r')
cisloRiadku=0
for riadok in subor:
cisloRiadku=cisloRiadku+1
subor.close()

sifra = re.findall('(..)(.)', subor)
sifra.sort()
print ''.join([y for(x,y)in sifra])

program mi nefunguje a vypisuje mi toto :

ip@ip:~$ python /media/1CE84E98E84E7056/download/programming/python/vylepsene/desifrator2.py
Traceback (most recent call last):
File "/media/1CE84E98E84E7056/download/programming/python/vylepsene/desifrator2.py", line 9, in <module>
sifra = re.findall('(..)(.)', subor)
File "/usr/lib/python2.6/re.py", line 177, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer


viete mi poradit kde som spravil chybu a ako to opravit ? dakujem
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: python

Príspevok od používateľa axxis »

file otvoris takto

Kód: Vybrať všetko

subor  = open( "tvojSubor.txt" , "rt" )
ale nechapem co tam robis s tym cislom riadku, to ako chces vediet kolko viet mas v tom subore alebo co?

ak je v tom textaku viac tych sifier tak si ich uloz do nejakeho listu a potom pracuj s nim, alebo neviem co chces vlastne spravit

to ulozenie do listu moze byt nieco taketo

Kód: Vybrať všetko

list = []
for line in subor:
    list.append(line)
alebo ich posielaj priamo do tej metody nejako takto

Kód: Vybrať všetko

for line in subor:
    sifra = re.findall('(..)(.)', line) 
    sifra.sort() 
    print ''.join([y for(x,y)in sifra])
Napísať odpoveď