


Помогите исправить ошибку в скрипте Python. Он должен был открывать папку по пути и проверять все txt файлы
Ошибка: File "C:\Users\Administrator\Downloads\find.py", line 10
if filename.endswith(".txt"):
^
IndentationError: expected an indented block after 'for' statement on line 8
скрипт:
import os
path = r"C:\Users\Administrator\Downloads\cookies2" # путь до папки
word = '_|WARNING:'
sp = []
for filename in os.listdir(path):
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)
А, видимо он не находит .txt файл, поэтому действия после if не идут из этого следует, что file_path - неизвестная переменная:
for filename in os.listdir(path):
if filename.endswith(".txt"):
filepath = os.path.join(path, filename)
else:
return print('Ошибка: .txt файлы не найдены!')
Вот решение
А про отступы наверное забыли?
import os
path = r"C:/Users/Administrator/Downloads/cookies2" # путь до папки
word = '_|WARNING:'
sp = []
for filename in os.listdir(path):
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)