Итерация по каталогу и печать содержимого каждого файла [PYTHON] - PullRequest
2 голосов
/ 05 февраля 2020

на самом деле это должно быть просто, но я просто не могу найти решение.

У меня есть каталог. Давайте назовем это «файлы», содержащие txt-файлы (lycris2, тексты песен)

Я хочу перебрать этот каталог и распечатать содержимое каждого txt.file

Так вот мой код:

import os

for filename in os.listdir("files"):
    f = open(filename, 'r')
    content = f.read()
    print(content)

Но это не работает. Вот сообщение об ошибке, которое мне было показано:

C:\Users\Juan\.virtualenvs\PyQT\Scripts\python.exe "C:/Users/Juan/Desktop/Python Kurs/Kursmaterialien/PyQT/venvy library root/testmain.py"
Traceback (most recent call last):
  File "C:/Users/Juan/Desktop/Python Kurs/Kursmaterialien/PyQT/venvy library root/testmain.py", line 4, in <module>
    f = open(filename, 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'lyrcis2'

Какие-нибудь решения?

Ответы [ 2 ]

3 голосов
/ 05 февраля 2020

Обработчику файлов необходим полный относительный путь из вашего текущего каталога:

import os

for filename in os.listdir("files"):
    f = open(os.path.join("files", filename), 'r')
    content = f.read()
    print(content)
0 голосов
/ 05 февраля 2020

Для Python 3 пользователей есть pathlib:

import pathlib

for path in pathlib.Path('files').iterdir():
    if not path.is_file():
        continue
    with path.open() as f:
        print(f.read())
...