В одном операторе печати две переменные печатаются в двух разных строках - PullRequest
1 голос
/ 19 марта 2020
with open("C:\\Users\\Nav\\Desktop\\script\\names.txt", 'r+') as f:
    for x in range (0, 100):
        f_contents = f.readline()
        name = f_contents
        name2 = name
        print(name.lower().replace(" ", "") + "@gmail.com" + "\n")

x = input()

С помощью этого кода я пытаюсь прочитать файл с полным именем в каждой строке и отформатировать его, это работает нормально, но когда я добавляю "@ gmail.com" и распечатываю его, он печатается на две разные строки в консоли.

Например, мой вывод

austenrush
@gmail.com

yuvaanduncan
@gmail.com

jawadpatton
@gmail.com

hanifarusso
@gmail.com

kerysbeck
@gmail.com

safiyamcguire
@gmail.com

oluwatobilobamiddleton
@gmail.com

, в то время как я хотел бы получить:

austenrush@gmail.com

yuvaanduncan@gmail.com

jawadpatton@gmail.com

hanifarusso@gmail.com

kerysbeck@gmail.com

safiyamcguire@gmail.com

oluwatobilobamiddleton@gmail.com

1 Ответ

2 голосов
/ 19 марта 2020

readline не удаляет символ новой строки, прочитанный из файла; Вы должны сделать это сами.

    f_contents = f.readline().rstrip("\n")

Файлы итеративны, поэтому вам не нужно явно вызывать readline.

from itertools import islice


with open("C:\\Users\\Nav\\Desktop\\script\\names.txt", 'r+') as f:
    for f_contents in islice(f, 100):
        name = f_contents.rstrip("\n").lower().replace(" ", "")
        print(name + "@gmail.com" + "\n")

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