小编Arm*_*her的帖子

使用Python获取文件的最后n行,类似于tail

我正在为Web应用程序编写一个日志文件查看器,为此我想通过日志文件的行分页.文件中的项目是基于行的,底部是最新项目.

所以我需要一种tail()方法,可以n从底部读取行并支持偏移量.我想出的是这样的:

def tail(f, n, offset=0):
    """Reads a n lines from f with an offset of offset lines."""
    avg_line_length = 74
    to_read = n + offset
    while 1:
        try:
            f.seek(-(avg_line_length * to_read), 2)
        except IOError:
            # woops.  apparently file is smaller than what we want
            # to step back, go to the beginning instead
            f.seek(0)
        pos = f.tell()
        lines = f.read().splitlines()
        if len(lines) >= to_read or pos == 0:
            return lines[-to_read:offset and -offset or None]
        avg_line_length …
Run Code Online (Sandbox Code Playgroud)

python file-io file tail logfiles

174
推荐指数
10
解决办法
14万
查看次数

在Textarea中的光标位置显示DIV

对于我的项目,我很乐意为特定的textarea提供自动完成功能.类似于intellisense/omnicomplete的工作原理.然而,我必须找出绝对光标位置,以便我知道DIV应该出现在哪里.

事实证明:那是(几乎我希望)无法实现的.有没有人有一些巧妙的想法如何解决这个问题?

javascript dom

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

什么是将任意文本格式化为非常好看的HTML的Python模块的名称?

不久之前,我遇到了一个Python库,它将常规文本格式化为HTML,类似于Markdown,reStructuredText和Textile,只是它根本没有语法.它仅检测到缩进,引号,链接和换行/段落.

不幸的是,我丢失了图书馆的名称而无法使用谷歌.任何想法?

编辑: reStructuredText又名rst == docutils.这不是我想要的:)

python formatting markup

10
推荐指数
2
解决办法
668
查看次数

在显示之前设置NSWindow的位置

现在我正在设置一个即将打开的窗口的位置:

-(void) setActiveNodeDialog:(ISKNodeDialogController *)dialog
{
    if (activeNodeDialog)
        [[activeNodeDialog window] close];
    activeNodeDialog = dialog;
    if (activeNodeDialog) {
        [activeNodeDialog setMainWindowController:self];
        NSRect windowRect = [[self window] frame];
        NSRect dialogRect = [[activeNodeDialog window] frame];
        NSPoint pos;
        pos.x = windowRect.origin.x + windowRect.size.width - dialogRect.size.width - 10;
        pos.y = windowRect.origin.y + 32;
        [[activeNodeDialog window] setFrameOrigin:pos];
        [[activeNodeDialog window] makeKeyAndOrderFront:nil];
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,窗口将在显示时"跳转".即使我在使用"makeKeyAndOrderFront"显示窗口之前设置了位置.窗户是NSPanel *.任何想法如何解决跳跃?

在awakeFromNib中设置位置不是一个选项,因为稍后会设置主控制器.

cocoa

10
推荐指数
1
解决办法
5928
查看次数

HTML5 Canvas中的像素完美碰撞检测

我想检查HTML5画布中两个Sprite之间的碰撞.因此,为了讨论,让我们假设两个精灵都是IMG对象,并且碰撞意味着alpha通道不是0.现在这两个精灵都可以围绕对象的中心旋转,但是如果这样做则没有其他变换更容易.

现在,我想出的明显解决方案是:

  • 计算两者的变换矩阵
  • 找出代码应该测试的区域的粗略估计(比如两者的偏移+计算的旋转额外空间)
  • 对于交叉矩形中的所有像素,转换坐标并在Alpha通道的计算位置(舍入到最近邻居)处测试图像.然后在第一次击中时中止.

我看到的问题是:a)JavaScript中没有矩阵类,这意味着我必须在JavaScript中这样做,这可能非常慢,我必须测试每帧的冲突,这使得这相当昂贵.此外,我必须复制我在绘图时必须做的事情(或者画布对我来说,设置矩阵).

我想知道我在这里是否遗漏了什么,以及是否有更容易的碰撞检测解决方案.

javascript graphics html5 canvas

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

在C++中忽略std :: cin上的EOF

我有一个实现交互式shell的应用程序,类似于Python控制台/ irb的工作方式.现在的问题是,如果用户意外命中^DEOF,我的getline()调用将返回一个空字符串,我将其视为"无输入"并再次显示提示.

然后,这将导致无限循环打印提示.

现在在Python中我会通过捕获来解决这个问题EOFError,但是在C++中没有引发异常,我可以捕获并且似乎没有设置cin忽略EOF.

任何提示?

c++ console stdin

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

Lektor的插件开发

我正在尝试开发一个reStructuredText插件并做一些基本的错误.

我的插件对象如下所示:

class RSTPlugin(Plugin):
    name = 'RST'
    description = 'RST plugin'

    def on_setup_env(self, **extra):
        self.env.jinja_env.filters['markdown'] = \
            jinja2.contextfilter(lambda ctx, *a, **kw: RST(*a, **kw))
Run Code Online (Sandbox Code Playgroud)

现在:on_setup_env调用该函数.请注意,我正在替换markdown dict条目(暂时).但是当我运行lektor时,原来的Markdown类被调用而不是我的RST类.

python lektor

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

标签 统计

python ×3

javascript ×2

c++ ×1

canvas ×1

cocoa ×1

console ×1

dom ×1

file ×1

file-io ×1

formatting ×1

graphics ×1

html5 ×1

lektor ×1

logfiles ×1

markup ×1

stdin ×1

tail ×1