import os
def catalog_search(path_to_catalog: str) -> list:
fl_lst = []
directory_ = os.walk(path_to_catalog, topdown=True)
for address, dirs, files in directory_:
for name in files:
fl_lst.append(os.path.join(address, name))
return fl_lst
def amount_file_string(string_: str) -> int:
for i_file in string_:
try:
with open(i_file, 'r') as f:
amount = f.readlines()
yield len(amount)
except FileNotFoundError:
print(f'Файл не найден: {i_file}')
catalog = 'L:\\28.Python\\Python_Basic\\Module14'
file_list = catalog_search(catalog)
file_strings = (amount_file_string(file) for file in file_list)
print(f'Найдено {len(file_list)} файлов в каталоге {catalog}.')
for i_value in file_strings:
try:
print(f'Количество строк в файле {i_value}')
except StopIteration:
pass
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
if event.src_path == 'L:\\file_dir\\file.txt':
print(event.src_path)
if __name__ == "__main__":
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path='L:\\file_dir', recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
observer.schedule(event_handler, path='.', recursive=False)
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
if event.src_path == 'file.txt':
print("Файл file.txt был изменен!")