2014-09-27 3 views
0

У меня просто был быстрый вопрос, который продолжает ломать мою программу. По какой-то причине file.write() будет принимать только 1 строку или переменную, и мой вопрос есть там вообще?Использование file.write() в python

Например, Im спрашивает, возможно ли сразу записать несколько переменных или строк в файл. Как это, но без .write(), потому что это не позволяет вам.

file.write("apples: ", numApples, "\n oranges: ", numOranges) 

Любая помощь или предложения приветствуются!

Лучший ответ, о котором я думал сейчас, это сделать все строкой, а затем отправить ее в файл.

+2

'file.write ("яблоки:" + str (numApples) + "\ n апельсины:" + str (numOranges)) ' – DOOM

ответ

3

Вы можете преобразовать все аргументы в строку и добавить их вместе.

Например, str(var) будет преобразовывать var в тип строки.

Вы можете просто использовать str(numApples) и т. Д. В вашем случае и добавить их с помощью оператора + (string concatenate). Модифицированный код будет выглядеть

file.write("apples: " + str(numApples) + "\n oranges: " + str(numOranges))

Здесь у вас есть только один аргумент вместо 4.

+0

Это то же самое, что я только что показал DOOM, я должен был бы сделать это перед .write, а затем отправить новую строку там, но мне было интересно, был более простым способом ... Nevermind Im an idiot – Diesel298

+0

Рад, что он исправил ваш код. :) – venki421

+0

Да, у меня все еще был «,» вместо «+». Как я сказал, глупая ошибка – Diesel298

2

вы также можете использовать формат -:

file.write("apples: {0}\n oranges: {1}".format(numApples, numOranges)) 

Это дает вам гибкость для добавления форматирования к номерам, которые у вас нет, с простым решением конкатенации строк.

+0

Что вы подразумеваете под этим? Я все еще новичок в python, поэтому Im немного запутался. – Diesel298

+0

Например, вы можете делать такие вещи, как 'file.write (" apples: {0: 5d} \ noranges: {1: 4d} ". Format (numApples, numOranges))', чтобы вывести цифры вверх. –

0

Используйте file.writelines, который принимает итерабельность строк, а не одну строку.

Или используйте print(*args, file=), который берет что угодно и называет str() для вас.

0

Вам нужно сделать одну arguemnt из ваших строк, есть несколько способов сделать это:

  1. делают каждую часть строки с использованием Str(), а затем сцепить с помощью «+»
  2. Использование ул .format
  3. Используя красивый и лаконичный старый синтаксис:

    file.write("apples: %s\noranges:%s" % (numApples, numOranges)) 
    
Смежные вопросы