Python: использование функции write () для вывода трех переменных - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь заставить программу записать их в новый файл. Каждую строку легко выполнить, но в сочетании возникают проблемы.

line1 = raw_input("line 1: ")
line2 = raw_input("line 2: ")
line3 = raw_input("line 3: ")

print "I'm going to write these to the file."


#this here results a syntax error..
target.write (\%r, \%r, \%r) % (line1, line2, line3)

#what do?

Ответы [ 4 ]

0 голосов
/ 23 января 2019

Используя ваш текущий метод написания строк, вам нужно иметь "% r" в строке, а "% (line1, line2, line3)" должно быть в "target.write ()" вызов функции

target.write("%r %r %r" % (line1, line2, line3)

Но ты же холодный и попробуй использовать метод writelines

with open("test.txt", "w+") as file:
    file.writelines([line1, line2, line3])

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

lines = []
lineCount = 5

for l in range(lineCount):
    lines.append(input("Line %d: " % l) + "\n")

with open("test.txt", "w+") as file:
    file.writelines(lines)
0 голосов
/ 23 января 2019

Попробуйте:

targe.write('{} {} {}'.format(line1,line2,line3))

или в старом формате:

target.write('%r %r %r' % (line1,line2,line3))
0 голосов
/ 23 января 2019

С питоном 3 вы можете использовать f строк

target.write (f"{line1} {line2} {line3}")

Вы можете найти намного больше о f-строках здесь в официальных документах. https://www.python.org/dev/peps/pep-0498/

0 голосов
/ 23 января 2019

В Python вы можете объединять строки, используя оператор +, поэтому попробуйте:

target.write(line1+line2+line3)

РЕДАКТИРОВАТЬ: Версия с новыми строками:

target.write(line1+"\n"+line2+"\n"+line3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...