Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Дополните скрипт Python, (открывание папок) пожалуйста

Сашок Сашкин Ученик (108), открыт 1 неделю назад
Вот мне надо, чтоб скрипт проверял все txt файлы в папке. Типо сейчас он по пути файла txt, а мне надо чтоб можно было написать путь до папки и он проверял каждый файл. Скрипт:

path = r"мой путь"
word = '_|WARNING:'
sp = []
with open(path, 'r', encoding='utf-8') as file:
data = file.readlines()
for line in data:
if word in line:
sp.append(line[line.index(word)::])
print('Готово')
print(f'Скопировано {len(sp)} строк')
with open('result.txt', 'w', encoding='utf-8') as file:
file.writelines(sp)
1 ответ
HAKER HAKER Знаток (314) 1 неделю назад
import os

path = r"мой путь" # путь до папки
word = '_|WARNING:'
sp = []

# Проходим по всем файлам в папке
for filename in os.listdir(path):
# Проверяем, является ли файл текстовым (txt)
if filename.endswith(".txt"):
# Формируем полный путь к файлу
filepath = os.path.join(path, filename)

# Открываем файл и читаем его
with open(filepath, 'r', encoding='utf-8') as file:
data = file.readlines()

# Проверяем каждую строку на наличие ключевого слова
for line in data:
if word in line:
sp.append(line[line.index(word)::])

print('Готово')
print(f'Скопировано {len(sp)} строк')

# Записываем результат в файл
with open('result.txt', 'w', encoding='utf-8') as file:
file.writelines(sp)
Объяснение изменений:

Импорт модуля os: Модуль os предоставляет функции для работы с файловой системой.
Цикл for для перебора файлов: Цикл for filename in os.listdir(path): перебирает все файлы и папки в указанном каталоге path.
Проверка на текстовые файлы: if filename.endswith(".txt"): проверяет, заканчивается ли имя файла расширением .txt.
Создание полного пути: filepath = os.path.join(path, filename) создает полный путь к файлу, объединяя путь к папке и имя файла.
Открытие и чтение файлов: Остальной код скрипта работает с файлами в цикле, читая их содержимое, проверяя строки на наличие word и записывая результаты в result.txt.
Пример использования:

Если у вас есть папка с названием “my_folder” с несколькими текстовыми файлами, вы можете запустить скрипт так:

path = r"C:\Users\ВашеИмя\Documents\my_folder"
Скрипт проверит все .txt файлы в этой папке, найдет строки, содержащие _|WARNING:, и запишет их в result.txt.
Похожие вопросы