wejście-wyjście i przechowywanie obiektów

Opis modułów pickle i shelve oraz modułów wejścia/wyjścia

Opcje linii polecenia są umieszczane na liście sys.argv, gdzie pierwszy element to nazwa programu (pliku). Przykład, wywołaj np. "nazwa.py foo bar -cos=inne"
import sys
for i in range(len(sys.argv)):
	print sys.argv[i]
Zmienne środowiskowe dostępne są w słowniku os.environ
import os
for i in os.environ:
	print i + " - " + os.environ[i]

W pythonie można w łatwy sposób przechowywać obiekty. Można tego dokonać za pomocą modułów shelve i pickle. Przykład:
import pickle, time
obiekt = time.time()
f = open('plik.txt', 'w')
pickle.dump(obiekt, f)
print "Spiklowano obiekt o wartosci " + str(obiekt)
Obiekt odtwarzamy tak:
import pickle, time
obiekt = time.time()
f = open('plik.txt', 'r')
obiekt_oryginalny = pickle.load(f)
print "Oryginalny obiekt z pickla: " + str(obiekt_oryginalny)
print "Obecny czas to: " + str(obiekt)
Moduł shelve służy temu samemu, lecz obieky zapisywane są w bazie przypominającej słownik:
import shelve, time
obiekt = time.time()
db = shelve.open('plik.txt')
db['klucz'] = obiekt

obiekt_odzysk = db['klucz']
db.close()
Do dyspozycji mamy również moduł marshal, który ma znacznie mniej możliwości lecz jest znacznie szybszy. Serializacja danych wygląda następująco:
import marshal
wart = 4444
f = open('plik.txt', 'w')
marshal.dump(wart, f)
Odczyt:
import marshal
f = open('plik.txt', 'r')
print marshal.load(f)
Wartości moga być typu Null, liczbami całkowitymi, zespolonymi, zmiennoprzecinkowymi, napisami, tuplami, listami i słownikami (szczegóły w dokumentacji).
blog comments powered by Disqus

Kategorie

Strony