Форум сайта python.su
Добрый вечер!
Я только начал изучать Python и хотелось бы попросить вашей помощи.
Есть каталог, из которого построчно возвращаются имена файлов в виде:
file1 010101 08-2020
file2 020202 10-2020
file3 030303 03-2021
file4 040404 06-2021
file5 050505 06-2021, etc. и записываются в txt файл.
Как, через input, сделать так, чтобы из этого списка в txt заносились строки содержащие определенный месяц и год? Скажем, мне нужно там видеть только file4 и file5, введя в поле input - 06-2021.
Сам перепробовал уже несколько способов, но ничего не выходит. Помогите, пожалуйста
from pathlib import Path
import datetime
p = Path('E:\Python\ForDocks').rglob('*.pdf')
for path in p:
ps = path.stem
pstat = path.stat().st_mtime
pstat_str = datetime.datetime.fromtimestamp(pstat).strftime('%m-%Y')
psumm = ps + ' %s' % pstat_str
with open('E:/Python/text.txt', 'a') as f:
print(psumm, file=f)
Отредактировано deadagnostic (Авг. 10, 2021 21:18:59)
Офлайн
file_record1 = 'file1 010101 08-2020' file_record2 = 'file4 040404 06-2021' # первый способ '06-2021' in file_record1 '06-2021' in file_record2 # второй способ file_record1.endswith('06-2021') file_record2.endswith('06-2021') # третий способ import re re.search(r'06-2021$', file_record1) is not None re.search(r'06-2021$', file_record2) is not None
Отредактировано py.user.next (Авг. 11, 2021 00:23:42)
Офлайн
Приветствую!
# Импорт модуля os import os # Получаем список файлов в директории files = os.listdir('E:\Python\ForDocks') list = [] #Список, в котором будут имена нужных файлов for file in files: #Поочерёдно присваиваем переменной file - значение каждого элемента списка files if '06-2021' in file: #Если '06-2021' в имени файла file = file.replace('.txt', '') # Расширение файла .txt не будет выводиться в результате (Необязательное действие) list.append(file) #Заносим имя в список for el in list: #Для вывода поочерёдно в столбик print(el)
040404 06-2021 050505 06-2021
Офлайн