Как извлечь имя файла в виде строки при переборе файлов с помощью `pathlib.Path().glob()`?

#python #annotations #filenames #glob #pathlib

#python #аннотации #имена файлов #глоб #pathlib

Вопрос:

 import pandas as pd
from pathlib import Path

Reports = Path('path/text').glob('*.txt')
for report in Reports:
    raw_text = open(report).read()
    TAB = pd.read_csv('path/tables/*.ann')
 

Я использую pathlib.Path().glob() для перебора всех .txt файлов в текстовом каталоге. Для каждого path/text/file_name.txt из них есть соответствующий .ann файл path/tables/file_name.ann (с тем же именем файла) в каталоге tables, и мне нужна таблица для соответствующей обработки необработанного текста. Есть ли удобный способ открыть соответствующий .ann файл?

Могу ли я извлечь путь к файлу каждого .txt файла в виде строки S , а затем

 S =                        # extract a path-to-file string from report
file = S.replace('text','tables').replace('txt','ann')
TAB = pd.read_csv(file)
 

Надеюсь, будет лучший подход.

Комментарии:

1. Вы могли бы сделать file = report.parents[1].joinpath('tables').joinpath(report.name[:-3] 'ann') . Но я думаю, что было бы лучше установить path_tables = Path('path/tables') перед циклом, а затем использовать file = path_tables.joinpath(report.name[:-3] 'ann') . (Просто мысль.)

2. @Timus Большое вам спасибо! Оба работают очень хорошо! Вы можете сделать это ответом, если хотите, и тогда я его приму.

3. Спасибо, это очень мило с вашей стороны… но я думаю, что так все в порядке.