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

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

Сашок Сашкин Ученик (50), на голосовании 2 месяца назад
Вот основа скрипта есть. Мне нужно чтоб он проверял все файлы при указании пути папки. А также чтоб он копировал всю линию со слова '_|WARNING:' а то сейчас при указании слова он тупо линию копирует.

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)
print('Готово')
print(f'Скопировано {len(sp)} строк')
with open('result.txt', 'w', encoding='utf-8') as file:
file.writelines(sp)
Голосование за лучший ответ
Nikassaiop End Просветленный (40203) 3 месяца назад
Ты буквально это и написал в коде - копировать линию, если хоть где-либо в ней есть '_|WARNING:'
Сашок СашкинУченик (50) 3 месяца назад
Так я хз потому, что как по-другому
Nikassaiop End Просветленный (40203) Сашок Сашкин, замени
 sp.append(line) 
на
 sp.append(line[line.index(word)::]) 
HAKER HAKER Знаток (370) 3 месяца назад
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)

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

# Записываем результат в файл
with open('result.txt', 'w', encoding='utf
Сашок СашкинУченик (50) 3 месяца назад
Спасибо, но дает такую ошибку
File "C:\Users\Administrator\Downloads\find.py", line 9

if filename.endswith(".txt"):

^

IndentationError: expected an indented block after 'for' statement on line 8
Похожие вопросы