Δημοσιεύτηκε: 03 Οκτ 2011, 21:10
από Ilias95
Λοιπόν, να ο κώδικας:

Spoiler: show
Κώδικας: Επιλογή όλων
#!/usr/bin/python3

import pickle

class Edit:

def __init__(self):
self.pickle_file = 'list.data'
self.txt_file = 'files_names.txt'
self.names_list = self.load_list()

def list_append(self, name):
if not name in self.names_list:
self.names_list.append(name)
else:
print('This file name already exists!')
self.save_list()

def delete_from_list(self, name):
if name in self.names_list:
for i in self.names_list:
if i == name:
self.names_list.remove(i)
else:
print('There is no file with the name "{}"'.format(name))
self.save_list()

def save_list(self):
with open(self.pickle_file, 'wb') as a:
pickle.dump(self.names_list, a)
self.write_to_file()

def load_list(self):
try:
with open(self.pickle_file, 'rb') as a:
a_list = pickle.load(a)
except IOError:
return list()
return a_list

def write_to_file(self):
text = ''
for i in self.names_list:
text += i + '\n'
with open(self.txt_file, mode='w', encoding='utf-8') as a:
a.write(text)

a = Edit()

Σύντομη τεκμηρίωση:

Σε κάθε προσθήκη ή διαγραφή ονόματος προστίθεται (αν δεν υπάρχει ήδη) ή διαγράφεται (εφόσον υπάρχει) ένα string από μια λίστα.
Μετά την επεξεργασία της λίστας, η λίστα αποθηκεύεται με το άρθρωμα pickle και αμέσως από την λίστα δημιουργώ ένα αρχείο .txt το οποίο κάθε φορά ξαναγράφεται απ' την αρχή.
Μόλις αρχικοποιείται η κλάση "φορτώνεται" η λίστα από το "list.data"...

Πως θα το δουλέψεις:

Για να προσθέσεις όνομα φακέλου προσθέτεις στο τέλος του κώδικα:
Κώδικας: Επιλογή όλων
a.list_append('ena onoma')

Για να διαγράψεις:
Κώδικας: Επιλογή όλων
a.delete_from_list('ena_onoma')