Projekt F: operacje wejścia
Transkrypt
Projekt F: operacje wejścia
2016-11-30
Przygotować program
wczytujący słowa z pliku tekstowego
wyszukujący określone słowo z wczytanego pliku tekstowego
zapisujący zestaw wyszukanej informacji do pliku wynikowego.
Przygotować program wczytujący zawartość pliku tekstowego do tablicy
dwuwymiarowej:
każda linia to kolejny wiersz tablicy;
każde słowo z linii trafia do kolejnej kolumny.
zaimplementować funkcje realizujące następujące cele
usuwanie pustej linii;
porządkowanie zawartości według pierwszej kolumny;
porządkowanie zawartości każdej linii z osobna;
porządkowanie zawartości według ostatniej kolumny.
wyniki działania poszczególnych funkcji zapisać w oddzielnych plikach.
1. Typy zmiennych są przypisywane dynamicznie.
Bez
edycji
string ( i tuple)
versus list
Można
edytować
tekst = 'ala ma kota'
tekst = tekst + ' duplikujemy ' + tekst
rozmiar= len(tekst)
pelny_rozmiar = tekst.__sizeof__()
lista= tekst.split()
lista[1]='nie ma'
lista.insert(1,'nie')
Każda zmienna
ma swój zasięg ,
w którym jest
zdefiniowana.
metody_tekstu = dir(tekst)
metody_listy = lista.__dir__()
A_typy_zmiennych.py
1
2016-11-30
Praca z plikami jest prosta. Otwarcie pliku dostarcza wielu metod.
def czytaj_plik(nazwa_pliku):
try:
plik = open(nazwa_pliku, 'r')
print ( "\n\nCzytam z " + nazwa_pliku )
zawartosc = plik.read()
except IOError:
print ("\n\nBłąd dostępu do pliku. STOP? ")
zawartosc={}
return zawartosc
Plik jest zamykany
automatycznie po
wykonaniu funkcji
nazwa_pliku = "Python4biologists.txt"
tekst = czytaj_plik(nazwa_pliku)
Otwarcia pliku:
ile=len(tekst)
’r’
rozmiar=tekst.__sizeof__()
’w’
if ile > 0:
’a’
poczatek = tekst[0:100]
koniec = tekst[(ile-100):ile]
print ("od początku: \n".upper(), poczatek + '\n znaki = ' +str(ile) )
print ("\n końcowka \n ".upper(), koniec, ' wszystko = ' , rozmiar )
plik=open(nazwa_pliku[0:6]+".txt", 'w')
plik.write("od początku: \n".upper()+ poczatek + '\n znaki = ' +str(ile) )
plik.write("\n\n\n końcowka \n ".upper() + koniec + '\n wszystko = ' + str( rozmiar) )
plik.close())
B_czytaj_plik.py
Praktyczna obsługa plików
with open ("Python4biologists.txt") as plik:
linie = plik.readlines()
plik.seek(0)
znaki= plik.read()
slowa = znaki.split()
Plik jest zamykany zaraz
po wykonaniu bloku
p1 = linie[0:10]
p2 = znaki[0:100]
p3 = slowa[0:100]
print("\n linie: razem ", len(linie), "pierwsze 10\n", p1)
print("\n znaki: razem ", len(znaki), " pierwsze 100\n" , p2)
print("\n slowa: razem ", len(slowa), " pierwsze 100\n" , p3)
C_czytaj_slowa.py
2
2016-11-30
# 1. drukuj każda linię tak, jak ją wczytano
with open(infile) as f1:
for line in f1:
print (line)
# 2. drukuj każdą linię pomijając ostatni
#znak (końca linii)
with open(infile) as f1:
for line in f1:
print (line[:-1])
# 3. drukuj tylko pierwsze słowo z każdej
# linii
with open(infile) as f1:
for line in f1:
row = line.split()
print(row[0])
In-out.py
#4. drukuj każdą linie jak sformatowany tekst
with open(infile) as f1:
for line in f1:
row = line.split()
print(row[0] + "\n-----------------")
for i in range(1, len(row)):
print(row[i])
#5. dodaj każdą linie do listy
cars = list()
with open(infile) as f1:
for line in f1:
row = line.split()
cars.append(row)
for i in range(0,len(cars)) :
for j in range (0, len(cars[i])):
print(cars[i][j])
# 6.wpisz do zbioru
with open(outfile, ’w') as f2:
for car in cars:
f2.write(car[0] + "\n")
#7.pisz listę listy wierszy do pliku
with open(outfile, ‚ ’a') as f2:
for car in cars:
f2.write(str(car) + "\n")
Wyszukiwanie zadanego słowa
D_szukaj_slowo.py
1) Porównywanie słów:
2) Wyszukiwanie określonej zawartości:
if (a == b) :
metoda
.find()
D_szukaj_slowo_znakowo.py
Sortowanie zawartości
metoda
.sort()
E_sortuj_linie.py
3