По сравнению с Java (в виде строки), вы должны сделать что-то вроде "First Line\r\nSecond Line"
.
Итак, как бы вы сделали это в Python, чтобы написать несколько строк в обычном файле?
По сравнению с Java (в виде строки), вы должны сделать что-то вроде "First Line\r\nSecond Line"
.
Итак, как бы вы сделали это в Python, чтобы написать несколько строк в обычном файле?
Это зависит от того, насколько правильно вы хотите быть. \n
обычно делает эту работу. Если вы действительно хотите понять это правильно, вы ищите символ новой строки в пакете os
. (На самом деле это называется linesep
.)
Примечание: при записи в файлы с использованием Python API не используйте os.linesep
. Просто используйте \n
; Python автоматически переводит это на правильный символ новой строки для вашей платформы.
Новый символ строки \n
. Он используется внутри строки.
Пример:
print 'First line \n Second line'
где \n
- символ новой строки.
Это даст результат:
First line
Second line
Вы можете писать в новых строках отдельно или внутри одной строки, что проще.
line1 = "hello how are you"
line2 = "I am testing the new line escape sequence"
line3 = "this seems to work"
Вы можете написать '\n' отдельно:
file.write(line1)
file.write("\n")
file.write(line2)
file.write("\n")
file.write(line3)
file.write("\n")
hello how are you
I am testing the new line escape sequence
this seems to work
Как уже указывали другие в предыдущих ответах, поместите \n в соответствующие пункты в вашей строке:
line = "hello how are you\nI am testing the new line escape sequence\nthis seems to work"
file.write(line)
hello how are you
I am testing the new line escape sequence
this seems to work
В Python вы можете просто использовать символ новой строки, т.е. \n
Если вы вводите сразу несколько строк текста, я считаю, что это наиболее читаемый формат.
file.write("\
Life but a walking shadow, a poor player\n\
That struts and frets his hour upon the stage\n\
And then is heard no more: it is a tale\n\
Told by an idiot, full of sound and fury,\n\
Signifying nothing.\n\
")
\ в конце каждой строки выходит новая строка (что может вызвать ошибку).
Если вы вызываете print
только без аргументов, она выведет пустую строку.
print
Вы можете передать вывод в файл, как это (учитывая ваш пример):
f = open('out.txt', 'w')
print 'First line' >> f
print >> f
print 'Second line' >> f
f.close()
Он не только не зависит от ОС (даже без использования пакета os
), но и более читабелен, чем помещает \n
в строки.
Функция print()
имеет необязательный аргумент ключевого слова для конца строки, называемый end
, который по умолчанию равен символу новой строки ОС, например. \n
. Итак, когда вы вызываете print('hello')
, Python фактически печатает 'hello' + '\n'
. Это означает, что когда вы вызываете просто print
без каких-либо аргументов, на самом деле печатается '' + '\n'
, что приводит к переводу строки.
Используйте многострочные строки.
s = """First line
Second line
Third line"""
f = open('out.txt', 'w')
print s >> f
f.close()
То же самое с '\n'
, хотя вам, вероятно, не понадобится '\r'
. Есть ли у вас причина в вашей версии Java? Если вам это нужно/нужно, вы можете использовать его так же и в Python.
\n - работает простая вставка символа новой строки:
# Here the test example - string with newline char :
In [36]: test_line = "Hi!!!\n testing first line.. \n testing second line.. \n and third line....."
# Output:
In [37]: print(test_line)
Hi!!!
testing first line..
testing second line..
and third line.....
Большинство escape-символов в строковых литералах из Java также допустимы в Python, таких как "\ r", "\n"
Чтобы убрать пробелы в выводе, сделайте, как показано в следующем примере:
a=10
b=5
print('{}\n{}\n{}'.format(a+b,a-b,a*b))
о/р
15
5
50
\n разделяет строки строки. В следующем примере я продолжаю писать записи в цикле. Каждая запись отделена \n
f = open("jsonFile.txt", "w")
for row_index in range(2,sheet.nrows):
System = sheet.cell(row_index, 2).value
Floor = sheet.cell(row_index, 3).value
Location = sheet.cell(row_index, 4).value
DisplayName = sheet.cell(row_index, 6).value
Description = sheet.cell(row_index, 7).value
tag = sheet.cell(row_index, 8).value
mydict1 = {
"PowerMeterId" : row_index + 1,
"Service": "Electricity",
"Building": "JTC FoodHub",
"Floor": str(Floor),
"Location": Location,
"ReportType": "Electricity",
"System": System,
"SubSystem": "",
"Incomer": "",
"Category": "",
"DisplayName": DisplayName,
"Description": Description,
"Tag": tag,
"IsActive": 1,
"DataProviderType": int(0),
"DataTable": ""
}
mydict1.pop("_id", None)
f.write(str(mydict1) + '\n')
f.close()