У меня есть каталог с многочисленными подкаталогами.
В нижней части каталогов есть несколько файлов .txt, из которых мне нужно извлечь строку 2.
import os
import os.path
import linecache
for dirpath, dirnames, filenames in os.walk("."):
for filename in [f for f in filenames if f.endswith(".txt")]:
#print os.path.join(dirpath, filename)
#print filename
print linecache.getline(filename, 2)
Я могу успешно разобрать все каталоги и найти каждый текстовый файл. А вот linecache.getline просто возвращает новую строку (где должны быть данные из той строки файлов). С использованием
print linecache.getline(filename, 2).rstrip('\n')
Это тоже не решает.
Я могу правильно распечатать только имена файлов в каждом каталоге, но передача их в линейный кеш, похоже, может быть проблемой. Я могу успешно использовать linecache.getline(file, lineno.)
, если просто запускаю скрипт в 1 файле .txt в текущем каталоге.