- Κώδικας: Επιλογή όλων
#!/usr/bin/python3
import pickle
class Edit:
def __init__(self):
self.all_pickle_file = 'pickle_all.data'
self.open_pickle_file = 'pickle_open.data'
self.all_txt_file = 'all_files.txt'
self.open_txt_file = 'open_files.txt'
self.all_files_list = []
self.open_files_list = []
self.load_lists()
def list_append(self, name):
if not name in self.all_files_list:
self.all_files_list.append(name)
else:
print('This file name already exists!')
self.open_a_file(name)
self.save_lists()
def delete_from_list(self, name):
if name in self.all_files_list:
for i in self.all_files_list:
if i == name:
self.all_files_list.remove(i)
else:
print('There is no file with the name "{}"'.format(name))
if name in self.open_files_list:
self.open_files_list.remove(name)
self.save_lists()
def open_a_file(self, name):
if name in self.all_files_list and not name in self.open_files_list:
self.open_files_list.append(name)
elif name in self.open_files_list:
print('This file is already open!')
else:
print('There is no file with the name "{}"'.format(name))
self.save_lists()
def close_a_file(self, name):
if name in self.all_files_list and name in self.open_files_list:
self.open_files_list.remove(name)
elif not name in self.open_files_list:
print('This file is already closed!')
else:
print('There is no file with the name "{}"'.format(name))
self.save_lists()
def save_lists(self):
with open(self.all_pickle_file, 'wb') as a:
pickle.dump(self.all_files_list, a)
with open(self.open_pickle_file, 'wb') as a:
pickle.dump(self.open_files_list, a)
self.write_to_files()
def load_lists(self):
try:
with open(self.all_pickle_file, 'rb') as a:
self.all_files_list = pickle.load(a)
except IOError:
pass
try:
with open(self.open_pickle_file, 'rb') as a:
self.open_files_list = pickle.load(a)
except IOError:
pass
def write_to_files(self):
text = ''
for i in self.all_files_list:
text += i + '\n'
with open(self.all_txt_file, mode='w', encoding='utf-8') as a:
a.write(text)
text = ''
for i in self.open_files_list:
text += i + '\n'
with open(self.open_txt_file, mode='w', encoding='utf-8') as a:
a.write(text)
a = Edit()
#a.list_append('name1')
#a.list_append('name2')
#a.delete_from_list('name2')
#a.close_a_file('name1')
#a.open_a_file('name1')
Πρόσθεσα 5 γραμμές με σχόλια για να δεις πως μπορείς να το δουλέψεις. Δοκίμασε να εκτελέσεις μία μία τις γραμμές αφήνοντας κάθε φορά τις υπόλοιπες σαν σχόλια και παρατήρησε τι συμβαίνει στα δύο αρχεία.
Δημιουργεί στον κατάλογο από όπου εκτελείται το πρόγραμμα τα αρχεία "all_files.txt" και "open_files.txt" τα οποία περιέχουν τα ονόματα όλων ή των ανοιχτών μόνο φακέλων αντίστοιχα.



