Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 在flask中,为什么“file.read()”在发送回客户端时会删除换行符,而在写入文件时会有两个换行符_Python_Flask_Azure Web App Service - Fatal编程技术网

Python 在flask中,为什么“file.read()”在发送回客户端时会删除换行符,而在写入文件时会有两个换行符

Python 在flask中,为什么“file.read()”在发送回客户端时会删除换行符,而在写入文件时会有两个换行符,python,flask,azure-web-app-service,Python,Flask,Azure Web App Service,我正在写一个演示烧瓶应用程序。我的目标是当用户上传文件时,服务器将处理该文件并将已处理的文件返回给用户。我使用in flask网站。现在我对以下事情感到困惑: 如果我只是使用return request.files['file'].read将文件返回给用户,浏览器将获得一个页面,其中删除了每个句子中的每一个换行。例如,如果我上载包含以下内容的test.txt: line1 line2 浏览器将显示如下所示: line1 line2 如果我用 with open(filename, 'w')

我正在写一个演示烧瓶应用程序。我的目标是当用户上传文件时,服务器将处理该文件并将已处理的文件返回给用户。我使用in flask网站。现在我对以下事情感到困惑:

如果我只是使用return request.files['file'].read将文件返回给用户,浏览器将获得一个页面,其中删除了每个句子中的每一个换行。例如,如果我上载包含以下内容的test.txt:

line1
line2
浏览器将显示如下所示:

line1 line2
如果我用

with open(filename, 'w') as f:
    f.write(request.files['file'].read())
位于服务器中名为filename的文件是

line1

line2
其中每个句子中有两个换行符

这是什么原因造成的?写入部分:是因为文件中的\r\n还是\n。我正在用python2.7测试win10中的write部分

这是获取文件的网站,当您单击“转换”按钮时,文件内容将显示在浏览器中。您可以使用它来查看我所说的第一个结果,并且可以使用任何文件来测试它。

Flask正确读取文件内容。但是\n在HTML中不被视为换行符。您可以将内容包装在pre标记中,这将保留格式

在检查html源代码后,从提供给你的网站上,应用程序得到的是正确的


我明白了,谢谢。但是为什么写入一个文件时,每个部分都有两个换行符?@EvanL00 write在我的本地机器上正常工作。你能打印reprrequest.files['file']的结果吗?readIt是'line1\r\nline2',是关于\r\n还是关于某种东西我使用win10和python 2.7I使用notepade++打开文件,它将显示三行,如果使用GVIM,它将显示两行,每行带有^m