Удаление первой строки заголовка из текстового файла после чтения в python

1

Я загрузил текстовый файл с помощью следующей команды. Я хочу удалить первую строку заголовка из contents, которое было разделено \n. Как это сделать?

txtfile = open(filepath, "rt")
contents = txtfile.read()
contents
'Label  Volume(voxels)SurfArea(mm^2) Eccentricity   Elongation     Orientation    Centroid                      Axes Length                   Bounding Box                  \n  1      148766  ...

Во-вторых, как удалить \n с конца каждого элемента (т.е. Каждой строки) contents?

Спасибо

Теги:
python-2.7
text-files

5 ответов

2

Используя нарезку:

файл:

Label  Volume(voxels)SurfArea(mm^2) Eccentricity   Elongation     Orientation    Centroid                      Axes Length                   Bounding Box                  \n1
148766

Отсюда:

txtfile = open(filepath, "rt")
contents = txtfile.readlines()[1:]    # skip the first line
print(contents)    

ВЫХОД:

['148766']

РЕДАКТИРОВАТЬ:

Если текст находится в одной строке, вы можете преобразовать список в строку и разделить() разделителем \n:

txtfile = open(filepath, "rt")
contents = txtfile.readlines()
print("".join(contents).split(r'\n1')[1:])
  • 0
    Спасибо за помощь. Как получить остальные файлы в массиве NumPy?
  • 0
    Вы имеете в виду содержание файлов? Вы пытаетесь извлечь содержимое из нескольких файлов?
Показать ещё 2 комментария
1

Пытаться:

txtfile = open(filepath, "rt")
txtfile.readline()  # Discard first line
contents = txtfile.read()
  • 0
    contents.splitlines() удаляет '\ n` в конце каждой строки
  • 0
    Да, но вы не включили это в свой вопрос, когда я ответил на него. ;-) Обычно лучше задавать дополнительные вопросы в виде отдельных вопросов SO.
Показать ещё 1 комментарий
0

Вы можете просто пропустить заголовок, используя next на fd,

>>> with open(filepath, "rt") as textfile:
...    next(textfile)  # Discard first line
...    contents = txtfile.read()
0

пытаться:

txtfile = open(filepath, "rt")
contents = txtfile.read()
#split it and join only the items after it
after = ''.join(contents.split(r'\n1')[1:])

0

В вашем примере это может работать:

import re
#your code
content = re.sub( ".*?\n1", "", content, 1 ) #Replace the first occurance of "[Anything]\n1" with ""

Ещё вопросы

Сообщество Overcoder
Наверх
Меню