Если вы хотите, чтобы все строки были записаны в одну строку в файле без разделителя новой строки между ними, существует несколько способов, как показано здесь другими.
Интересный вопрос - как получить их снова в программу, если это необходимо, и вернуть их в соответствующие переменные.
Мне нравится использовать json (docs здесь ) для такого рода вещей, и вы можете заставить выводить все в одну строку. Это:
import json
string_1 = "Mary had a little lamb which was as white as snow"
string_2 = "Jack and jill went up a hill to fetch a pail of water"
strs_d = {"string_1": string_1, "string_2": string_2}
with open("foo.txt","w") as fh:
json.dump(strs_d, fh)
запишет в файл следующее:
{"string_1": "Mary had a little lamb which was as white as snow", "string_2": "Jack and jill went up a hill to fetch a pail of water"}
Это можно легко перезагрузить обратно в словарь и вытащить исходные строки.
Если вас не интересуют имена исходной строковой переменной, вы можете использовать такой список:
import json
string_1 = "Mary had a little lamb which was as white as snow"
string_2 = "Jack and jill went up a hill to fetch a pail of water"
strs_l = [string_1, string_2]
with open("foo.txt","w") as fh:
json.dump(strs_l, fh)
, и он выводит это:
["Mary had a little lamb which was as white as snow", "Jack and jill went up a hill to fetch a pail of water"]
который, когда перезагрузка из файла вернет все строки в список, который затем можно разделить на отдельные строки.
Все это предполагает, что вы хотите перезагрузить строки (и поэтому не обращайте внимания на дополнительную json информацию в выводе, чтобы разрешить перезагрузку), а не просто выводить их в файл для некоторых других нужд и не может иметь дополнительное json форматирование на выходе.
В вашем примере вывода этого нет, но ваш пример вывода также находится на более чем одной строке, и вопрос хотел, чтобы все это было в одной строке, поэтому ваши потребности не совсем ясны.