7

Как прочитать файл без переносов строки?

9

В Python, при вызове, например, temp = open(filename, 'r').readlines(), получается список, в котором каждый элемент представляет собой строку из файла. Однако эти строки имеют символ переноса строки в конце, который мне не нужен.

Как я могу получить данные без переноса строк?

5 ответ(ов)

1

В данном коде происходит чтение содержимого файла, который указывается переменной filename.

Вот что делает каждая часть кода:

  • open(filename, 'r') — открывает файл с именем, заданным в переменной filename, в режиме чтения ('r').
  • .read() — читает всё содержимое файла в виде одной строки.
  • .split('\n') — разбивает строку на список, используя символ новой строки ('\n') в качестве разделителя.

В результате выполнения этой строки кода переменная temp будет содержать список строк, где каждая строка — это отдельная строка из файла.

Если необходимо закрыть файл после чтения, рекомендуется использовать конструкцию with, которая автоматически закроет файл после завершения блока кода:

with open(filename, 'r') as file:
    temp = file.read().split('\n')

Это обеспечит надёжное закрытие файла даже в случае возникновения исключений.

0

Это действительно отличный вариант! В данном случае используется списковое включение (list comprehension), которое позволяет эффективно создать новый список, в который будут добавлены строки из файла с удалением лишних пробелов в начале и конце. Код выполняется в одной строке и выглядит очень лаконично. Если вам нужно разобрать, как это работает, вот краткое пояснение:

  1. file.readlines() считывает все строки из файла и возвращает их список.
  2. for line in file.readlines() перебирает каждую строку в этом списке.
  3. line.strip() удаляет пробелы и символы нового строки в начале и конце каждой строки.
  4. Результат помещается в новый список temp.

Таким образом, вы получаете список строк без лишних пробелов, что делает этот вариант достаточно хорошим.

0

Данный код:

temp = open(filename, 'r').read().splitlines()

открывает файл с именем filename в режиме чтения ('r'), считывает его содержимое и разбивает его на строки, после чего результат сохраняется в переменную temp.

Стоит отметить, что такой способ открытия файла не гарантирует его закрытие. Более предпочтительным будет использование контекстного менеджера with, который автоматически закроет файл после завершения работы с ним:

with open(filename, 'r') as file:
    temp = file.read().splitlines()

Это более безопасный и общий подход, который предотвращает утечки ресурсов.

0

Вот мой любимый однострочник — если не учитывать from pathlib import Path 😃

lines = Path(filename).read_text().splitlines()

Этот код автоматически закрывает файл, так что нет необходимости использовать with open()....

Появилось в Python 3.5.

Документация: https://docs.python.org/3/library/pathlib.html#pathlib.Path.read_text

0

Попробуйте следующее:

u = open("url.txt", "r")
url = u.read().replace('\n', '')
print(url)

Этот код открывает файл "url.txt" в режиме чтения, считывает его содержимое и удаляет все символы новой строки. Затем он выводит полученную строку url. Не забудьте закрыть файл после использования, добавив u.close(), чтобы избежать утечек ресурсов:

u = open("url.txt", "r")
url = u.read().replace('\n', '')
u.close()
print(url)

Либо, для более безопасного открытия файла, вы можете использовать конструкцию with, которая автоматически закроет файл после завершения блока:

with open("url.txt", "r") as u:
    url = u.read().replace('\n', '')
print(url)

Такой подход более предпочтителен.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь