import os import pathlib import shutil import datetime запись сообщени

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
import os
import pathlib
import shutil
import datetime
# запись сообщения в файл с указанием времени
def info(message='All is good!'):
current_time = datetime.datetime.now()
result = f'{current_time} - {message}\n'
with open('info.txt', 'a', encoding='utf_8') as f:
f.write(result)
# создание файла
def create_file(name):
with open(name, 'w', encoding='utf-8') as f:
pass
message = f'Файл {name} создан!'
info(message)
print(message)
# создание папки
def create_folder(name):
try:
os.mkdir(name)
message = f'Папка {name} создана!'
info(message)
print(message)
except FileExistsError:
message = f'Папка {name} уже существует!'
info(message)
print(message)
# просмотр списка файлов и папок
def get_list(folders_only=False):
result = os.listdir()
if folders_only:
result = [f for f in result if os.path.isdir(f)]
message = 'Получен список всех папок!'
else:
message = 'Получен список файлов и папок в текущей папке!'
info(message)
return result
# удаление файла
def delete_file(name):
if os.path.isdir(name):
try:
os.rmdir(name)
message = f'Папка {name} удалена!'
info(message)
print(message)
except OSError:
message = f'Папка {name} не пуста!'
info(message)
print(message)
else:
try:
os.remove(name)
message = f'Файл {name} удален!'
info(message)
print(message)
except FileNotFoundError:
message = f'Файл {name} не существует!'
info(message)
print(message)
except PermissionError:
message = f'Нет разрешения на удаление файла {name}'
info(message)
print(message)
# копирование файлов и папок
def copy_file(name, new_name='copy'):
if os.path.isdir(name):
try:
shutil.copytree(name, new_name)
message = f'Папка {name} и ее содержимое скопиравано в папку {new_name}!'
info(message)
print(message)
except FileExistsError:
message = f'Папка {new_name} уже существует!'
info(message)
print(message)
else:
shutil.copy(name, new_name)
message = f'Файл {name} и его содержимое скопиравано в файл {new_name}!'
info(message)
print(message)
# переименование файла
def rename_file(name, new_name):
try:
os.renames(name, new_name)
message = f'Файл переименован из {name} в {new_name}!'
info(message)
print(message)
except FileNotFoundError:
message = f'Файл {name} не существует!'
info(message)
print(message)
except PermissionError:
message = f'Нет разрешения на переименование файла {name}!'
info(message)
print(message)
# чтение из файла
def read_file(name):
try:
with open(name, 'r', encoding='utf-8') as f:
text = f.readlines()
result = [line.replace('\n', '') for line in text]
message = f'Текст из файла {name} считан!'
info(message)
print(message)
return result
except FileNotFoundError:
message = f'Файл {name} не существует!'
info(message)
print(message)
# запись в файл
def write_in_file(name, text):
try:
with open(name, 'a', encoding='utf-8') as f:
f.write(text + '\n')
message = f'Текст {text} записан в файл {name}!'
info(message)
print(message)
except FileNotFoundError:
message = f'Файл {name} не существует!'
info(message)
print(message)
except PermissionError:
message = f'Нет разрешения на запись в файл {name}!'
info(message)
print(message)
# удаление содержимого ФАЙЛА
def delete_content_file(name):
try:
with open(name, 'w', encoding='utf-8') as f:
message = f'Содержимое файла {name} удалено!'
info(message)
print(message)
pass
except FileNotFoundError:
message = f'Файл {name} не существует!'
info(message)
print(message)
# удаление содержимого ПАПКИ
def delete_content_folder(name):
try:
for the_file in os.listdir(name):
file_path = os.path.join(name, the_file)
if os.path.isfile(file_path):
os.unlink(file_path)
elif os.path.isdir(file_path):
shutil.rmtree(file_path)
message = f'Содержимое папки {name} удалено!'
info(message)
print(message)
except FileNotFoundError:
message = f'Папка {name} не существует!'
info(message)
print(message)
# перемещение файлов
def move_file(name, new_place):
try:
shutil.move(name, new_place)
message = f'Файл {name} теперь расположен в {new_place}!'
info(message)
print(message)
except FileNotFoundError:
message = f'Файл {name} не существует!'
info(message)
print(message)
# архивация папки
def file_archiving(new_name, name, format='zip'):
try:
shutil.make_archive(new_name, format, name)
message = f'Папка {name} архивирована в {new_name}!'
info(message)
print(message)
except FileNotFoundError:
message = f'Папка {name} не существует!'
info(message)
print(message)
# извлечение из архива
def extraction_from_archive(name, new_place=os.getcwd(), format='zip'):
try:
shutil.unpack_archive(name, new_place, format)
message = f'Файлы из архива {name} находятся в {new_place}'
info(message)
print(message)
except shutil.ReadError:
message = f'Архива {name} не существует!'
info(message)
print(message)
# помощь
def help_module():
print('This is a module created by Nikolay Knyazev from Moscow.')
print()
print('It is called FAR Manager.')
print('Here are its main functions:')
print()
print(' - create_file(name) - creates files named "name";')
print(' - create_folder(name) - creates directory named "name";')
print(' - delete_file(name) - deletes files named "name", regardless of whether it is a file or a directory;')
print(' - copy_file(name, new_name) - copies a file named "name" to a file named "new_name";')
print(' - rename_file(name, new_name) - renames file from "name" to "new_name";')
print(' - read_file(name) - reads all text from a file named "name" and returns this text;')
print(' - write_file_in_file(name, text) - appends text "text" to a file named "name";')
print(' - delete_content_file(name) - deletes the contents of a file named "name";')
print(' - delete_content_folder(name) - deletes the contents of a directory named "name";')
print(
' - get_list(folder_only=False) - returns a list of all files and directories, or just directories in the given directory.')
print(' - move_file(name, new_place) - moves the file "name" to the directory "new_place"')
print(
' - file_archiving(new_name, name, format = "zip") - archives a file with the name "name" in the format "zip" (default) to the directory "new_place"')
print()
print('The functionality of the module in the future will be more...')
message = 'Запрошена помощь по модулю FAR Manager'
info(message)