小编aga*_*rs3的帖子

Python相当于使用管道将文件输出到Perl中的gzip

我需要弄清楚如何将文件输出写入Python中的压缩文件,类似于下面的双线程:

open ZIPPED, "| gzip -c > zipped.gz";
print ZIPPED "Hello world\n";
Run Code Online (Sandbox Code Playgroud)

在Perl中,这使用Unix gzip将打印到ZIPPED文件句柄的任何内容压缩到文件"zipped.gz".

我知道如何使用"import gzip"在Python中执行此操作,如下所示:

import gzip
zipped = gzip.open("zipped.gz", 'wb')
zipped.write("Hello world\n")
Run Code Online (Sandbox Code Playgroud)

但是,这非常缓慢.根据分析器,使用该方法占用了我运行时间的90%,因为我将200GB的未压缩数据写入各种输出文件.我知道文件系统可能是问题的一部分,但我想通过使用Unix/Linux压缩来排除它.这部分是因为我听说使用同一模块进行解压缩也很慢.

python compression gzip pipe filehandle

9
推荐指数
2
解决办法
4252
查看次数

处理上传的图像zip时的HTTP 504

我是网络开发的新手,我正在使用Django开发一个基本的图库应用程序(学习练习).我设置好所以我可以一次上传一个完整的图像来创建一个新专辑.这一切似乎都运行正常,但是当上传的文件特别大时,我收到HTTP 504错误.

我收集(如果我错了请纠正我)这个错误意味着我的应用程序太慢而无法返回HTTP响应.我猜这是因为解压缩和处理(在数据库中创建Pic对象并创建缩略图)所有图像需要很长时间.

有没有办法在后台执行处理时返回响应(比如某些中间页面) - 也许使用线程?处理这个问题的正确方法是什么?是时候开始学习Javascript/AJAX吗?

谢谢!


楷模:

from django.db import models
from blog.models import Post

class Album(models.Model):
    title = models.CharField(max_length=128)
    slug = models.SlugField()
    description = models.TextField()
    parent = models.ForeignKey('self', null=True, blank=True)

    pub = models.BooleanField()
    date_created = models.DateTimeField(auto_now_add=True)
    date_published = models.DateTimeField(null=True, blank=True)
    date_modified = models.DateTimeField(auto_now=True)

    def __unicode__(self):
        return self.title

class Pic(models.Model):
    image = models.ImageField(upload_to='pics/%Y/%m') 
    title = models.CharField(max_length=128)
    caption = models.TextField(blank=True, null=True)
    albums = models.ManyToManyField('Album', null=True, blank=True)
    posts = models.ManyToManyField(Post, blank=True, null=True)

    date_taken = models.DateTimeField(null=True, blank=True) 
    date_uploaded = models.DateTimeField(auto_now_add=True) 
    date_modified = …
Run Code Online (Sandbox Code Playgroud)

python django http

4
推荐指数
1
解决办法
1233
查看次数

标签 统计

python ×2

compression ×1

django ×1

filehandle ×1

gzip ×1

http ×1

pipe ×1