如何在python中使用x.write(input())添加新行
输入文本。。你好\n世界 输出。。你好\n世界 它将其作为字符串而不是换行符 为什么我的输入字符串在传递到写入时没有验证我的'\n'字符 这与我将输入传递给write有关吗?输入返回一个原始字符串,以便自动转义所有换行符。您可以使用literal_eval从ast将其转换回文字字符串 例如:如何在python中使用x.write(input())添加新行,python,file,input,Python,File,Input,输入文本。。你好\n世界 输出。。你好\n世界 它将其作为字符串而不是换行符 为什么我的输入字符串在传递到写入时没有验证我的'\n'字符 这与我将输入传递给write有关吗?输入返回一个原始字符串,以便自动转义所有换行符。您可以使用literal_eval从ast将其转换回文字字符串 例如: from ast import literal_eval with open('practice.txt','w') as x: text = input('enter text')
from ast import literal_eval
with open('practice.txt','w') as x:
text = input('enter text')
x.write(literal_eval("'" + text + "'"))
另一种解决方案是使用来自用户的多行输入,这样就不需要键入控制字符
请参见此处:此处回答-\n仅用于表示换行符。这两个字符在这里没有任何特殊意义,因为输入不解析转义序列。您必须自己找到一种方法,例如text=text。替换“\\n”和“\n”。但是,如果您在文本中的任何位置使用单引号,则会中断此操作。你可以用三个引号“+a+”,但有些输入也会中断。你说得对。我想不出一种方法来转换它而不中断至少一种类型的字符。是否真的没有完美的方法将原始数据转换为文字?出于某种原因,没有一个好的方法可以做到这一点:好的,这是一个明确的改进。不过,如果结尾有“\”的话,它仍然无法解码
from ast import literal_eval
with open('practice.txt','w') as x:
text = input('enter text')
x.write(literal_eval("'" + text + "'"))
from ast import literal_eval
a = input()
>>>"\tHello!"
print(a)
>>>\tHello!
print(literal_eval("'" + a + "'"))
>>> Hello!