Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用x.write(input())添加新行_Python_File_Input - Fatal编程技术网

如何在python中使用x.write(input())添加新行

如何在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')

输入文本。。你好\n世界

输出。。你好\n世界

它将其作为字符串而不是换行符 为什么我的输入字符串在传递到写入时没有验证我的'\n'字符

这与我将输入传递给write有关吗?

输入返回一个原始字符串,以便自动转义所有换行符。您可以使用literal_eval从ast将其转换回文字字符串

例如:

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!