小编nig*_*ler的帖子

如何在python中检查当前时间是否在范围内?

我需要检查当前时间是否在时间范围内.最简单的情况time_end> time_start:

if time(6,0) <= now.time() <= time(12,00): print '1'
Run Code Online (Sandbox Code Playgroud)

但是当用户在结束时间小于开始时间时输入时间范围时开始麻烦,例如"23:00 - 06:00".像'00:00'这样的时间就在这个范围内.大约5年前我写了这个PHP函数:

function checkInterval($start, $end)
  {    
    $dt = date("H:i:s");    

    $tstart = explode(":", $start);
    $tend =   explode(":", $end);
    $tnow =   explode(":", $dt);

    if (!$tstart[2])
      $tstart[2] = 0;

    if (!$tend[2])
      $tend[2] = 0;  

    $tstart = $tstart[0]*60*60 + $tstart[1]*60 + $tstart[2];
    $tend   = $tend[0]*60*60   + $tend[1]*60   + $tend[2];
    $tnow   = $tnow[0]*60*60   + $tnow[1]*60   + $tnow[2];

    if ($tend < $tstart)
      {
        if ($tend - $tnow > 0 && $tnow > $tstart)
          return true; …
Run Code Online (Sandbox Code Playgroud)

python datetime range

22
推荐指数
2
解决办法
3万
查看次数

Django - 标题之前的脚本输出结束

基本hello.wsgi工作正常.其他django应用程序也完美地与完全相同的virtualenv版本.

mod_wsgi 挂起约10分钟(!!!),我发现没有什么能指出我的问题(loglevel debug):

[Tue Mar 25 23:11:08.878578 2014] [:info] [pid 4719:tid 140720591648640] mod_wsgi (pid=4719): Attach interpreter ''.
[Tue Mar 25 23:11:08.879171 2014] [:info] [pid 4717:tid 140720591648640] mod_wsgi (pid=4717): Attach interpreter ''.
[Tue Mar 25 23:11:10.891348 2014] [authz_core:debug] [pid 4730:tid 140720477226752] mod_authz_core.c(802): [client 127.0.0.1:40844] AH01626: authorization result of Require all granted: granted
[Tue Mar 25 23:11:10.891391 2014] [authz_core:debug] [pid 4730:tid 140720477226752] mod_authz_core.c(802): [client 127.0.0.1:40844] AH01626: authorization result of <RequireAny>: granted
[Tue Mar 25 23:11:10.891489 2014] [authz_core:debug] …
Run Code Online (Sandbox Code Playgroud)

python apache django mod-wsgi

11
推荐指数
1
解决办法
7781
查看次数

Django在模板中获取ContentType

我有一个页面,其中包含许多具有不同内容类型的对象.我需要有能力评价这个对象.这是一个类:

class Score(models.Model):
    user            = models.ForeignKey(User)

    content_type    = models.ForeignKey(ContentType)
    object_id       = models.PositiveIntegerField()
    for_object      = generic.GenericForeignKey('content_type', 'object_id')

    like            = models.BooleanField(default=True)
    created_at      = models.DateTimeField(auto_now_add=True, blank=True, null=True)

    comment         = models.CharField(max_length=255, blank=True, null=True)

    objects = ChainerManager(ScoreQuerySet)

    def __unicode__(self):
        return u'Score for (%s, #%s) from user %s at %s' %\
            (self.content_type, self.object_id, self.user.get_full_name(), self.created_at)

    class Meta:
        unique_together = (('user', 'content_type', 'object_id'),)
Run Code Online (Sandbox Code Playgroud)

我的模板应如下所示:

...
{% for random_object in random_object_queryset %}
<a href={% url like_object random_object.<content_type> random_object.id %}>{{ random_object.name }}</a>
<a href={% url dislike_object random_object.<content_type> random_object.id %}>{{ …
Run Code Online (Sandbox Code Playgroud)

python django django-templates django-contenttypes

8
推荐指数
1
解决办法
4525
查看次数

Django ORM - 百分号表示喜欢

在我的网站上,用户应该能够过滤数字,例如*123*321*,匹配"666 123 555 321 111"或LIKE '%123%321%'.

默认情况下,django的orm会逃脱%-sign.我可以使用正则表达式或原始查询,但有一些解决方法吗?

UPD:我会把它放在这里以显示另一种方式.

integer_search = [] # for colorizing found substrings
if actual['integer']:
    integer_match = filter(None, actual['international'].split('*'))
    integer_search = integer_match
    integer_match = ''.join('%s[[:digit:]]*' % i for i in integer_match)
    integers = integers.filter(international__regex=integer_match)
Run Code Online (Sandbox Code Playgroud)

sql django orm django-queryset

5
推荐指数
1
解决办法
2168
查看次数

获取带名称空间的lxml标记属性

我的XML看起来像:

...
<termEntry id="c1">
    <langSet xml:lang="de">
    ...
Run Code Online (Sandbox Code Playgroud)

我有代码:

from lxml import etree
...

for term_entry in root.iterfind('.//termEntry'):
    print term_entry.attrib['id']
    print term_entry.nsmap

    for lang_set in term_entry.iterfind('langSet'):
        print lang_set.nsmap
        print lang_set.attrib

        for some_stuff in lang_set.iterfind('some_stuff'):
            ...
Run Code Online (Sandbox Code Playgroud)

我得到空的nsmap dict,我的attrib dict看起来像 {'{http://www.w3.org/XML/1998/namespace}lang': 'en'}

该文件可能不包含xml:在命名空间中,或者它可能具有不同的命名空间.我如何知道标签声明中使用的命名空间?实际上,我只需要获取一个lang属性,我不关心使用什么命名空间.我不想使用任何蹩脚的垃圾lang_set.attrib.values()[0]或其他具有已知名称的字段的查找.

python xml lxml namespaces

5
推荐指数
2
解决办法
4842
查看次数

pdfminer/poppler - 如何设置编码

我有一个文件,即http://www.agfl.cs.ru.nl/papers/manual28.pdf (英文)

Pdfminer 和 poppler 在大多数解析页面中显示相同的结果,例如: ¾º¿  ÒÙ Öݸ ¾¼¼ Ⱥ ¾º ÂÙÒ ¸ ¾¼¼ ź Ë ÙØØ Ö¸ Ǻ Ë

似乎无法读取字体自定义编码。如何指定?

下面是代码示例:

# poppler
input_filename = '/tmp/manual28.pdf'
document = poppler.document_new_from_file('file://%s' %  urllib.pathname2url(os.path.abspath(input_filename)), None)
n_pages = document.get_n_pages()
for i in range(n_pages):
    page = document.get_page(i)
    print page.get_text()
    # chardet.detect(page.get_text()) # utf8 all time

# pdfminer
def pdf_to_html(in_fp, out_fp, codec='utf-8', maxpages=0, pagenos=None, html=True):
    rsrcmgr = PDFResourceManager()
    laparams = LAParams()

    if isinstance(in_fp, basestring):
        in_fp = open(in_fp, 'rb')

    if isinstance(out_fp, basestring):
        out_fp …
Run Code Online (Sandbox Code Playgroud)

python encoding poppler pdfminer

5
推荐指数
0
解决办法
792
查看次数

检查是否存在重定向网址

登录后,用户应重定向到?next=%s网址.我想检查指定的url是否映射到一个existant视图.有reverse()通过视图获取url的功能,我需要vv所以,我需要Django为url模式匹配执行的功能.

我明白了,问题很简单,但我在谷歌找不到答案.

django url design-patterns

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

Python lxml - 获取标签文本的索引

我有一个xml文件,其格式类似于docx,即:

<w:r>
  <w:rPr>
    <w:sz w:val="36"/>
    <w:szCs w:val="36"/>
  </w:rPr>
  <w:t>BIG_TEXT</w:t>
</w:r>
Run Code Online (Sandbox Code Playgroud)

编辑:我需要在源xml中获得"BIG_TEXT"的索引,如:

from lxml import etree
text = open('/devel/tmp/doc2/word/document.xml', 'r').read()

root = etree.XML(text)

start = 0
for e in root.iter("*"):
    if e.text:
        offset = text.index(e.text, start)
        l = len(e.text)
        print 'Text "%s" at offset %s and len=%s' % (e.text, offset, l)
        start = offset + l
Run Code Online (Sandbox Code Playgroud)

我可以从当前索引+ len(文本)的位置开始新的搜索,但还有另一种方法吗?w例如,元素可以具有一个字符.它将找到w标记文本的索引,但不是索引文本的索引w.

python xml lxml

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

rsync with --remove-sent-files选项和打开的文件

我需要每分钟将记录的文件从3台服务器复制到一台数据存储器.我不需要保存原始文件 - 数据处理不在所有文件中.

但是当我使用选项时--remove-sent-files,rsync发送并删除未完成(未关闭)的文件.

我试图阻止使用lsof和发送这些打开的文件--exclude-from,但似乎rsync不会在exlude列表中取消遍历完整路径:

--exclude-from=FILE     read exclude >>patterns<< from FILE

lsof | grep /projects/recordings/.\\+\\.\\S\\+ -o | sort | uniq
/projects/recordings/<uid>/<path>/2012-07-16 13:24:32.646970-<id>.WAV
Run Code Online (Sandbox Code Playgroud)

所以,脚本看起来像:

# get open files in src dir and put them into rsync.exclude file
lsof | grep /projects/recordings/.\\+\\.\\S\\+ -o | sort | uniq > /tmp/rsync.exclude
# sync without these files
/usr/bin/rsync -raz --progress --size-only --remove-sent-files --exclude-files=/tmp/rsync.excldude /projects/recordings/ site.com:/var/www/storage/recordings/
# change owner
ssh storage@site.com chown -hR storage:storage /var/www/storage/recordings
Run Code Online (Sandbox Code Playgroud)

那么,我可能会尝试另一种工具吗?或者为什么rsync不听exlude?

linux rsync file

3
推荐指数
1
解决办法
5506
查看次数

Django模板查找顺序

我正在编写一个使用的应用程序django-floppyforms.此外,我的应用程序提供了默认twitter bootstrap皮肤,所以我已经在我的应用程序中自定义了floppyforms模板,使它们成为引导程序.我放入floppyforms/{layouts, rows}/bootstrap了我的应用程序的模板目录.但它不起作用:django不会使用它们.因此,我不想强​​制最终用户将自定义模板放入他的项目中,事实上,我想指出django floppyforms在呈现应用内内容时使用我的本地模板.我只想让我的应用程序独立,没有任何不方便的依赖.

UPDATE

现在我有与django-admintools-bootstrap和类似的麻烦Django 1.5.1.据之前添加admin_toolsINSTALLED_APPS,但没有效果.它也不会收集静电django-admintools-bootstrap.在使用这两个软件包和Django 1.4的其他类似项目中,一切正常.此外,我已经检查了Django 1.5的发行说明,以了解模板查找顺序的更改,但没有发现任何相关信息.

django templates path django-floppyforms

2
推荐指数
1
解决办法
2855
查看次数