Перейти к содержимому

Почему не работает strip python

  • автор:

Python strip () не работает для новых строк

Я пытаюсь удалить ‘\n’ после того, как я получу данные из своего тестового файла, и я стилю вижу новые строки в выходе.

users_data = open('users.txt', 'r') line = users_data.readline() while line: line.strip('\n') metode, data = line.split(":") d = <> #for debuging d[metode]=data print(d) line = users_data.readline() 

Я помещаю их в словарь для отладки, и я получаю:
Я сделал что-то неправильно?
Or Halimi 04 окт. 2013, в 10:43
Поделиться
Конечно, вы обычно не используете readline() . Просто используйте for line in users_data:
Matthias 04 окт. 2013, в 08:42

Почему нет? потому что он будет хранить все файлы в памяти? Моя пограмма прочитала несколько строк и создала пользователей. затем прочитайте больше строк и создайте больше пользователей. с прочитанной строкой я могу отслеживать это.

Or Halimi 04 окт. 2013, в 09:57

Это просто так «в старом стиле» и содержит больше кода. Вы можете просто зациклить файл объекта. Посмотрите » Методы файловых объектов » в документации.

Matthias 04 окт. 2013, в 11:40

но вопрос в том, буду ли я зацикливаться до середины файла, а затем заканчивать цикл (не закрою файл). а потом я снова начну цикл — он начнется с самого начала?

Почему я не могу удалять символ ‘\’, используя strip()? [дубликат]

У вас выходит ошибка в коде, потому что \’ воспринимается как заэкранированный символ кавычки, а не как закрывающая кавычка. Экранируйте бэкслэши. А про конкретную ошибку нужно было написать в вопросе.

21 июл 2022 в 15:21

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Нужно заменить \ на \\.

import os for current_dir, dirs, files in os.walk('C:\main'): print(current_dir.strip('C:\\')) 

Python воспринимает \ как символ экранирования. Примеры: \n, \’, \» и \t.
\\ является экранированнием символа \. Так что всегда когда в тексте нужно написать \ его надо заменять на \.
Также есть вариант с raw строками — r’C:\’. Но в таком случае если в тексте используется \n, \’, \» и так далее они работать не будут. Так как в raw строках экранирование не работает.

python strip

В python strip является одним из основных методов форматирования текста. strip позволяет вырезать ненужные символы в начале/конце выражения. Метод и его разновидности применим к объектам типа ‘строка’.

python strip — метод для удаления ненужных символов

strip() без аргументов удаляется пробельные символы с обеих сторон от выражения, заданного в качестве значения переменной. Аргументом может быть любой другой символ. Например, кавычка, двоеточие, скобка и т.п.

lstrip() — удаляет символы в начале выражения

rstrip() — удаляет символы в конце выражения

strip рассматривает не точное вхождение, а любые последовательные вхождения символов, которые передаются методу в качестве параметра.

Так если передать значение ‘<>‘ будет удалено любое количество угловых скобок справа и слева.

‘content’

Методы lstrip() и rstrip()

Таким же образом можно убирать часть вывода не с обеих сторон сразу, а с начала строки или с конца.

Метод применим только к строкам. Другие типы данных таким образом получится обрабатывать только после приведения их к строке функцией str.

Читайте про split в python — метод для выделения определенного содержимого из строк текста. Метод позволяет форматировать текстовую информацию выделяя из неё нужное в конкретном случае содержимое.

Почему не работает split()?

Но, стандартный .split() почему-то не работает и не хочет делить файл по пробелам, работает только с первым столбцом и выдавая ошибку на последующих: IndexError: list index out of range
Код:

water = open('watercube.pdb','r+') water2 = water.readlines() for col in water2: el = [col.split()[1] for col in water2]
  • Вопрос задан более двух лет назад
  • 163 просмотра

2 комментария

Простой 2 комментария

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar