小编the*_*orn的帖子

Emacs命令在光标上方插入和缩进行

当我意识到我需要(编辑)上面一行的变量定义(或类似的东西)时,我经常发现自己在一条线上打字.我想要的是

  1. 从一行的任何位置按C-return,让光标移动到上面新插入的空白行,并有正确的缩进(或至少与原始行相同).
  2. 能够抽出任何文字......
  3. 和Cu C空间回到原来的位置

我已经设法做到了#1,但是我的emacs-fu还不够强大,无法完成剩下的工作.

emacs elisp

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

返回父元素和子数据的json查询?

鉴于以下json:

{
    "README.rst": {
        "_status": {
            "md5": "952ee56fa6ce36c752117e79cc381df8"
        }
    },
    "docs/conf.py": {
        "_status": {
            "md5": "6e9c7d805a1d33f0719b14fe28554ab1"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有一种查询语言可以产生:

{
    "README.rst": "952ee56fa6ce36c752117e79cc381df8",
    "docs/conf.py": "6e9c7d805a1d33f0719b14fe28554ab1",
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我对JMESPath(http://jmespath.org/)的最佳尝试并不是非常接近:

>>> jmespath.search('*.*.md5[]', db)
['952ee56fa6ce36c752117e79cc381df8', '6e9c7d805a1d33f0719b14fe28554ab1']
Run Code Online (Sandbox Code Playgroud)

我已经与ObjectPath(http://objectpath.org)达成了同样的观点:

>>> t = Tree(db)
>>> list(t.execute('$..md5'))
['952ee56fa6ce36c752117e79cc381df8', '6e9c7d805a1d33f0719b14fe28554ab1']
Run Code Online (Sandbox Code Playgroud)

我无法理解JSONiq(我真的需要阅读一本105页的手册吗?)这是我第一次看json查询语言.

python json jsoniq

11
推荐指数
2
解决办法
2494
查看次数

Python库可以做类似jQuery的文本提取吗?

我有html包含这样的条目:

<div class="entry">
  <h3 class="foo">
    <a href="http://www.example.com/blog-entry-slug"
    rel="bookmark">Blog Entry</a>
  </h3>
  ...
</div>
Run Code Online (Sandbox Code Playgroud)

我想提取文本"博客条目"(和其他一些属性,所以我正在寻找一个通用的答案).

在jQuery中,我会这样做

$('.entry a[rel=bookmark]').text()
Run Code Online (Sandbox Code Playgroud)

我能用Python获得的最接近的是:

from BeautifulSoup import BeautifulSoup
import soupselect as soup

rawsoup = BeautifulSoup(open('fname.html').read())

for entry in rawsoup.findAll('div', 'entry'):
    print soup.select(entry, 'a[rel=bookmark]')[0].string.strip()
Run Code Online (Sandbox Code Playgroud)

来自http://code.google.com/p/soupselect/的 soupselect .

Soupselect不理解完整的CSS3选择器语法,但是jQuery也是如此.Python中有这样的野兽吗?

python jquery beautifulsoup css-selectors

9
推荐指数
1
解决办法
7870
查看次数

包装将保留行号的console.log()的当前最佳方法是什么?

我以前根据其他SO答案使用了以下内容(没有真正理解的需要(也没有工作) prototype.apply.apply

var mylogger = {
    log: function () {
        if (window.console) {
            if (window.console.log) {
                Function.prototype.apply.apply(console.log, [console, arguments]);
            }
        }
    },
    ...
};
Run Code Online (Sandbox Code Playgroud)

虽然这可以防止IE自身崩溃,但它也会使行号报告无法使用(它总是报告该apply.apply..行.

我正在玩一点,发现以下似乎完全符合我的需要,即阻止IE自身陷入困境并报告mylogger.log(..)从哪里调用的行号.

var mylogger = {
    // function invocation returning a safe logging function..
    log: (function () {
        if (window.console && window.console.log && Function.prototype.bind) {
            return window.console.log.bind(window.console);
        } else {
            return function () {};
        }
    }()),
    ...
};
Run Code Online (Sandbox Code Playgroud)

我已经在IE/FF/Chrome上做了一些基本的测试而没有看到任何问题..这是合理的还是有更好的方法?

javascript

6
推荐指数
1
解决办法
396
查看次数

你如何找到路径的第一个元素?

我刚刚下载了 Python 3.4,我想知道您将如何查找相对路径的第一个目录?即给出了a/b/c/d我想打印的路径a

我得到的最接近的是:

from pathlib import Path
print(list(Path('a/b/c/d').parents)[-2])
Run Code Online (Sandbox Code Playgroud)

或者

p = Path('a/b/c/d')
print(p.parents[len(p.parents) - 2])
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,这-2部分都有点神奇。我已经阅读了文档和 PEP,但没有找到更好的方法......我错过了一些明显的东西吗?

python python-3.x

6
推荐指数
1
解决办法
1716
查看次数

如何像java一样格式化日期时间?

我有以下java代码:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SXXX");
String timestamp = simpleDateFormat.format(new Date());
System.out.println(timestamp); 
Run Code Online (Sandbox Code Playgroud)

它以以下格式打印日期:

2016-09-20T01:28:03.238+02:00
Run Code Online (Sandbox Code Playgroud)

如何在 Python 中实现相同的格式?

到目前为止我所拥有的非常麻烦......:

import datetime
import pytz

def now_fmt():
    oslo = pytz.timezone('Europe/Oslo')
    otime = oslo.localize(datetime.datetime.now())
    msecs = otime.microsecond
    res = otime.strftime('%Y-%m-%dT%H:%M:%S.')
    res += str(msecs)[:3]
    tz = otime.strftime('%z')
    return res + tz[:-2] + ':' + tz[-2:]
Run Code Online (Sandbox Code Playgroud)

python java

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

如何在保留 getter/setter 的同时浅复制 Javascript 对象?

背景(为什么Object.update()jQuery.extend()不是解决方案,以及为什么这不是其他如何复制 JavaScript 对象问题的重复):此版本的复制,使用 for 循环

function copy_obj(obj) {
    var copy = {};
    for (var attr in obj) if (obj.hasOwnProperty(attr)) {
        copy[attr] = obj[attr];
    }
    return copy;
}
Run Code Online (Sandbox Code Playgroud)

只复制属性的值(就像 一样Object.update()),并且在像这样的对象上失败:

var myobj = {
    _fname: 'fname',
    _lname: 'lname',
    get fullname() { return this._fname + ' ' + this._lname; },
    set fullname(v) { this._fname = v; }
};
Run Code Online (Sandbox Code Playgroud)

IE

myobj.fullname === 'fname lname'  // true
myobj.fullname = 'Anton'
myobj.fullname === 'Anton lname'  // true
Run Code Online (Sandbox Code Playgroud)

尽管

var …
Run Code Online (Sandbox Code Playgroud)

javascript

6
推荐指数
1
解决办法
1447
查看次数

类型错误:不支持 + 的操作数类型:'map' 和 'float'

tesorflow在 Colaboratory 上练习,我的代码如下。有一些问题,错误消息是

“类型错误:+ 不支持的操作数类型:'map' 和 'float'”

有人可以告诉我出了什么问题吗?谢谢!

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(20)
y = map(lambda x: x + np.random.randn(1), x)
a, b = np.polyfit(x, y, 1)
plt.plot(x, y, 'o', np.arange(20), a*np.arange(20)+b, '-');**
Run Code Online (Sandbox Code Playgroud)

python

6
推荐指数
2
解决办法
7866
查看次数

我可以控制多行字符串的格式吗?

下面的代码:

from ruamel.yaml import YAML
import sys, textwrap

yaml = YAML()
yaml.default_flow_style = False
yaml.dump({
    'hello.py': textwrap.dedent("""\
        import sys
        sys.stdout.write("hello world")
    """)
}, sys.stdout)
Run Code Online (Sandbox Code Playgroud)

产生:

hello.py: "import sys\nsys.stdout.write(\"hello world\")\n"
Run Code Online (Sandbox Code Playgroud)

有没有办法让它产生:

hello.py: |
    import sys
    sys.stdout.write("hello world")
Run Code Online (Sandbox Code Playgroud)

反而?

版本:

python: 2.7.16 on Win10 (1903)
ruamel.ordereddict==0.4.14
ruamel.yaml==0.16.0
ruamel.yaml.clib==0.1.0
Run Code Online (Sandbox Code Playgroud)

python yaml ruamel.yaml

6
推荐指数
1
解决办法
2606
查看次数

python slim或alpine docker镜像无法使用pipenv安装包

我试图为我的 python 应用程序构建一个 docker 容器,但是在通过 pipelinenv 安装 python 包时遇到了问题。

如果我将基础映像设置为python:3.8.5它可以工作,但是如果我设置一个-slim-alpine多个版本,它们会失败并出现以下错误:

 Traceback (most recent call last):   File "/usr/local/bin/pipenv",
 line 8, in <module>
     sys.exit(cli())   File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/core.py",
 line 829, in __call__
     return self.main(*args, **kwargs)   File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/core.py",
 line 782, in main
     rv = self.invoke(ctx)   File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/core.py",
 line 1259, in invoke
     return _process_result(sub_ctx.command.invoke(sub_ctx))   File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/core.py",
 line 1066, in invoke
     return ctx.invoke(self.callback, **ctx.params)   File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/core.py",
 line 610, in invoke
     return callback(*args, **kwargs)   File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/decorators.py",
 line 73, in new_func
     return ctx.invoke(f, …
Run Code Online (Sandbox Code Playgroud)

python python-3.x docker alpine-linux pipenv

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