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 комментария
