Как изменить и распечатать элементы списка в python? - PullRequest
0 голосов
/ 01 августа 2020

Я новичок в python, работаю над маленьким логом c, у меня есть текстовый файл со ссылками html построчно. Мне нужно прочитать каждую строку файла и распечатать отдельные ссылки с одинаковым префиксом и суффиксом, чтобы модель выглядела так.

<item>LINK1</item>
<item>LINK2</item>
<item>LINK3</item>

и так далее.

У меня есть попробовал этот код, но в моем подходе что-то не так,

def file_read(fname):
        with open(fname) as f:
                #Content_list is the list that contains the read lines.
                content_list = f.readlines()
                for i in content_list:
                    print(str("<item>") + i + str("</item>"))


file_read(r"C:\Users\mandy\Desktop\gd.txt")

В выводе суффикс был не таким, как ожидалось, так как я новичок, может ли кто-нибудь разобраться в этом для меня?

<item>www.google.com
</item>
<item>www.bing.com
</item>

Ответы [ 3 ]

0 голосов
/ 01 августа 2020

Когда вы используете метод readlines (), он также включает символ новой строки из вашего файла ("\ n") перед синтаксическим анализом следующей строки.

Вы можете использовать метод с именем .strip (), который удаляет пробелы или символы новой строки в начале и в конце каждой строки, что правильно отформатирует ваш код.

def file_read(fname):
        with open(fname) as f:
                #Content_list is the list that contains the read lines.
                content_list = f.readlines()
                for i in content_list:
                    print(str("<item>") + i.strip() + str("</item>"))


file_read(r"C:\Users\mandy\Desktop\gd.txt")
0 голосов
/ 01 августа 2020

Я предполагаю, что вы хотели напечатать следующим образом www.google.com

Когда вы используете строки чтения, в конце каждой строки появляется дополнительный символ '\ n'. чтобы избежать этого, вы можете разделить строку и при печати вы можете использовать fstrings.

with open(fname) as f:
lin=f.readlines()
for i in lin:
    print(f"<item>{i.strip()}<item>")

Другой метод:

with open('stacksource') as f:
lin=f.read().splitlines()
for i in lin:
    print(f"<item>{i}<item>")

Здесь splitlines () разбивает строки и дает список

0 голосов
/ 01 августа 2020

Я думаю, когда вы используете .readLine, вы также помещаете символ конца строки в i. Если я вас правильно понял и вы хотите напечатать

элемент www.google.com элемент

Тогда попробуйте

https://www.journaldev.com/23625/python-trim-string-rstrip-lstrip-strip

print (str ("") + i.strip () + str (""))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...