Python 下载的文件在django中损坏

Python 下载的文件在django中损坏,python,django,Python,Django,我正在views.py文件中编写此函数: def download(request): file = open("D:\wamp\www\User_App.rar","r") mimetype = mimetypes.guess_type("D:\wamp\www\User_App.rar")[0] if not mimetype: mimetype = "application/octet-stream" response = HttpResponse(fi

我正在views.py文件中编写此函数:

def download(request):

    file = open("D:\wamp\www\User_App.rar","r")
    mimetype = mimetypes.guess_type("D:\wamp\www\User_App.rar")[0]
    if not mimetype: mimetype = "application/octet-stream"

    response = HttpResponse(file.read(), mimetype=mimetype)
    response["Content-Disposition"]= "attachment; filename=%s" % os.path.split("D:\wamp\www\User_App.rar")[1]
    return response

下载文件,但当下载,我打开这个是损坏的。如何解决此问题。

以二进制模式打开文件:

file = open(r"D:\wamp\www\User_App.rar", "rb")

因为在文本模式下打开文件意味着行尾被转换为平台无关的字符。

在二进制模式下打开文件:

file = open(r"D:\wamp\www\User_App.rar", "rb")

因为在文本模式下打开文件意味着行尾被转换为平台无关的字符。

在二进制模式下打开文件:

file = open(r"D:\wamp\www\User_App.rar", "rb")

因为在文本模式下打开文件意味着行尾被转换为平台无关的字符。

在二进制模式下打开文件:

file = open(r"D:\wamp\www\User_App.rar", "rb")


因为以文本模式打开文件意味着行尾被翻译成平台无关的
\n
字符。

关于代码样式的一些注释
file
在python中是一个保留字,您不应该命名变量
file
。另外:使用上下文管理器打开文件,即打开(文件名)为f:response=HttpResponse(f.read(),mimetype=mimetype)还有其他建议@room2web吗?如果语句:,请不要使用一行。PEP8对他们皱眉。也就是说。阅读PEP8:)。mimetypes.guess_type(…)是否总是返回非空列表?如果没有,您应该使用
try:。。。期望IndexError:…
获取mimetype(google Duck键入)。关于代码样式的一些注释
file
在python中是一个保留字,您不应该命名变量
file
。另外:使用上下文管理器打开文件,即打开(文件名)为f:response=HttpResponse(f.read(),mimetype=mimetype)还有其他建议@room2web吗?如果语句:,请不要使用一行。PEP8对他们皱眉。也就是说。阅读PEP8:)。mimetypes.guess_type(…)是否总是返回非空列表?如果没有,您应该使用
try:。。。期望IndexError:…
获取mimetype(google Duck键入)。关于代码样式的一些注释
file
在python中是一个保留字,您不应该命名变量
file
。另外:使用上下文管理器打开文件,即打开(文件名)为f:response=HttpResponse(f.read(),mimetype=mimetype)还有其他建议@room2web吗?如果语句:,请不要使用一行。PEP8对他们皱眉。也就是说。阅读PEP8:)。mimetypes.guess_type(…)是否总是返回非空列表?如果没有,您应该使用
try:。。。期望IndexError:…
获取mimetype(google Duck键入)。关于代码样式的一些注释
file
在python中是一个保留字,您不应该命名变量
file
。另外:使用上下文管理器打开文件,即打开(文件名)为f:response=HttpResponse(f.read(),mimetype=mimetype)还有其他建议@room2web吗?如果语句:,请不要使用一行。PEP8对他们皱眉。也就是说。阅读PEP8:)。mimetypes.guess_type(…)是否总是返回非空列表?如果没有,您应该使用
try:。。。预期索引器:…
获取mimetype(谷歌鸭子键入)。如果我想使用
路径到文件=D:\wamp\www\User\u App.rar
然后文件=打开(r“路径到文件”,“rb”),,,但是它会产生错误如何解决这个问题?你可以告诉我它会产生什么错误。@Martijin请访问你误解了
r
的作用;我使用了一个原始字符串文字来防止路径中的反斜杠被解释为转义序列。请参阅您有哪些选项,如果我要使用
path\u to\u file=D:\wamp\www\User\u App.rar
然后file=open(r“path\u to\u file”,“rb”),,,但是它会产生错误如何解决这个问题?你可以告诉我它会产生什么错误。@Martijin请访问你误解了
r
的作用;我使用了一个原始字符串文字来防止路径中的反斜杠被解释为转义序列。请参阅您有哪些选项,如果我要使用
path\u to\u file=D:\wamp\www\User\u App.rar
然后file=open(r“path\u to\u file”,“rb”),,,但是它会产生错误如何解决这个问题?你可以告诉我它会产生什么错误。@Martijin请访问你误解了
r
的作用;我使用了一个原始字符串文字来防止路径中的反斜杠被解释为转义序列。请参阅您有哪些选项,如果我要使用
path\u to\u file=D:\wamp\www\User\u App.rar
然后file=open(r“path\u to\u file”,“rb”),,,但是它会产生错误如何解决这个问题?你可以告诉我它会产生什么错误。@Martijin请访问你误解了
r
的作用;我使用了原始字符串文字来防止路径中的
\
反斜杠被解释为转义序列。请参阅您有哪些选项