Как сохранить номер строки при использовании Bag.read_text для чтения нескольких файлов?Python

Программы на Python
Ответить
Anonymous
 Как сохранить номер строки при использовании Bag.read_text для чтения нескольких файлов?

Сообщение Anonymous »

Я хочу прочитать несколько файлов .txt с помощью Bag.read_text и записать путь к файлу и номер строки каждой строки для дальнейшей обработки.
Функция read_text() имеет аргумент include_path=True, который может сохранить путь, но как мне получить номер строки? Будет ли read_text() сохранять порядок строк после чтения файлов?

Код: Выделить всё

def add_line_number(element):
line, path = element

# how to get the line number?
line_index = ...
return line, path, line_index

b = db.read_text([file1, file2, ...], blocksize='10 MiB', include_path)
b = b.map(add_line_number).compute()
# expect b to be: [('line 1', 'file path', ith line in that file), ...]
Edit2
Спасибо за вашу помощь. Вот еще вопросы.
Гарантирует ли read_text() сохранение порядка строк в каждом разделе при назначении files_per_partition=1?
В исходном коде файл читается построчно

Код: Выделить всё

with OpenFile as f:
for line in f:
yield line or (line, path)
Повлияет ли распараллеливание на его последовательность или это задание будет выполняться только одним работником?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»