#python #python-2.7
#python #python-2.7
Вопрос:
Я хочу записать ‘n’ в текстовый файл через python, но он регистрируется как новая строка.
f=open(newpath '/rewrite.py', 'w')
f.write('''#!/usr/bin/python
print "Content-type: text/htmln"''')
Я попытался обойти это и просто избежать ‘ n’, но я продолжаю получать внутренние ошибки сервера.
Комментарии:
1. Вы закрыли файл после записи в него содержимого? В случае, если вы видите какие-то ошибки, предоставьте полную трассировку ошибок.
2. Как указано в приведенных ниже ответах,
\n
это должно решить вашу проблему. Измените свой код на это ,f=open(newpath '/rewrite.py', 'w') f.write('''#!/usr/bin/python print "Content-type: text/html\n"''')
Ответ №1:
Вы можете кодировать обратную косую черту, экранируя ее с помощью обратной косой черты, "\n"
которая фактически помещает a
, а затем an n
в строку, тогда "n"
как кодирует фактический символ новой строки.
Ответ №2:
Используйте двойную обратную косую черту, чтобы избежать этого.
Ответ №3:
Два способа:
- Поместите двойную обратную косую черту в строку, чтобы избежать ее, например
"\"
, или'''\'''
для тройных кавычек, которые вы используете. - Другой способ — поместить
r
перед кавычками, чтобы сделать его «необработанным» строковым литералом, который игнорирует обратную косую черту, напримерr""
, илиr''''''
В Википедии есть хорошая иллюстрация необработанных строковых литералов Python.
Ответ №4:
>>> f=open( './rewrite.py', 'w')
>>> f.write('''#!/usr/bin/python
... print "Content-type: text/html\n"''')
>>> f.close()
~$ cat rewrite.py
#!/usr/bin/python
print "Content-type: text/htmln"