我想在程序的输出日志上进行正则表达式匹配(在Python中).日志包含一些如下所示的行:
...
VALUE 100 234 568 9233 119
...
VALUE 101 124 9223 4329 1559
...
Run Code Online (Sandbox Code Playgroud)
我想捕获在以VALUE开头的第一次出现之后发生的数字列表.即,我希望它返回('100','234','568','9233','119')
.问题是我事先并不知道会有多少数字.
我试图用这个作为正则表达式:
VALUE (?:(\d+)\s)+
Run Code Online (Sandbox Code Playgroud)
这匹配线,但它只捕获最后一个值,所以我得到('119',).
如果我在vim中编辑文件,并且我想创建一个垂直拆分并在拆分的右侧打开一个新文件,有没有办法用一个命令执行此操作?如果我做:
:vsp filename.txt
Run Code Online (Sandbox Code Playgroud)
然后它打开分割左侧的文件.
我正在使用R中的"by"函数来切断数据框并将函数应用于不同的部分,如下所示:
pairwise.compare <- function(x) {
Nright <- ...
Nwrong <- ...
Ntied <- ...
return(c(Nright=Nright, Nwrong=Nwrong, Ntied=Ntied))
}
Z.by <- by(rankings, INDICES=list(rankings$Rater, rankings$Class), FUN=pairwise.compare)
Run Code Online (Sandbox Code Playgroud)
结果(Z.by)看起来像这样:
: 4
: 357
Nright Nwrong Ntied
3 0 0
------------------------------------------------------------
: 8
: 357
NULL
------------------------------------------------------------
: 10
: 470
Nright Nwrong Ntied
3 4 1
------------------------------------------------------------
: 11
: 470
Nright Nwrong Ntied
12 4 1
Run Code Online (Sandbox Code Playgroud)
我想要的是将此结果转换为数据框(不存在NULL条目),所以它看起来像这样:
Rater Class Nright Nwrong Ntied
1 4 357 3 0 0
2 10 470 3 4 …
Run Code Online (Sandbox Code Playgroud) 问候.我现在一直在研究Literate Programming,我确实喜欢它背后的想法:你基本上写了一些关于你的代码的文章并写下了尽可能多的设计决策,代码可能围绕模块,内部工作原理由设计决策,潜在扩展产生的模块,假设和结论,所有这些都可以使用tex以一种很好的方式写下来.当然,第一点:它是文档.它必须保持最新,但这不应该那么糟糕,因为你的改变应该有理由,你可以写下来.
但是,文学编程如何在更大程度上扩展?总体而言,文学编程仍然只是文本.当然,非常人类可读的文本,但仍然是文本,因此,很难遵循大型系统.例如,我重新编写了我的编译器的大部分内容以使用>>和一些魔法来将编译步骤链接在一起,因为一些"x.register_follower(y); y.register_follower(z); y.register_follower(a); ... "变得非常笨拙,并将其改为x >> y >> z >> a使它变得更好,尽管这也是它的突破点.
那么,Literate Programming如何扩展到更大的系统?有人试图这样做吗?
我的想法是使用LP来指定使用事件流相互通信的组件,并使用graphviz的子集将所有这些组合在一起.这将是LP的一个相当自然的扩展,因为您可以从网络中提取文档 - 数据流图 - 并且也可以从中生成代码.你怎么看呢?
- Tetha.
如果文件系统不区分大小写,是否有一种简单的方法来检查Python?我正在考虑像HFS +(OSX)和NTFS(Windows)这样的文件系统,你可以在其中访问与foo,Foo或FOO相同的文件,即使保留了文件大小写.
如果你在一个函数内编译一个正则表达式,并且该函数被多次调用,那么Python每次都会重新编译正则表达式,还是Python缓存编译的正则表达式(假设正则表达式没有改变)?
例如:
def contains_text_of_interest(line):
r = re.compile(r"foo\dbar\d")
return r.match(line)
def parse_file(fname):
for line in open(fname):
if contains_text_of_interest(line):
# Do something interesting
Run Code Online (Sandbox Code Playgroud) 我想向Web应用程序的用户表明正在执行长时间运行的任务.曾几何时,这个概念将通过显示沙漏传达给用户.如今,它似乎是一个动画旋转圈.(例如,当您在Firefox中加载新选项卡或在Mac OS X中启动时.巧合的是,stackoverflow徽标中的溢出堆栈看起来像圆圈的四分之一).
有没有一种简单的方法来使用Javascript(特别是JQuery)创建此效果?理想情况下,我希望将这些小旋转器中的一个作为表中的元素,以向用户指示系统在处理待处理任务时仍处于活动状态(即,它没有忘记或崩溃).(当然,我意识到后端可能已经崩溃,前端仍然显示为动画旋转的东西,更多的是用户看到活动的心理目的).
无论如何,你称之为旋转的东西?
我正在使用RSQLite包来查询本地SQLite数据库,对于某些查询,RSQLite接口非常慢.
作为一个具体示例,以下查询使用sqlite3命令行实用程序运行不到一秒:
$ sqlite3 data/svn.db
SQLite version 3.7.5
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select count(distinct svn_path.revision) FROM src INNER JOIN svn_path ON src.filename=svn_path.path;
5039
Run Code Online (Sandbox Code Playgroud)
但R中的等效查询需要两分多钟时间并使用我的一个CPU的100%:
> library(RSQLite)
Loading required package: DBI
> con <- dbConnect(SQLite(), dbname="data/svn.db")
> dbGetQuery(con, "select count(distinct svn_path.revision) FROM src INNER JOIN svn_path ON src.filename=svn_path.path")
count(distinct svn_path.revision)
1 5039
Run Code Online (Sandbox Code Playgroud)
为什么通过R接口的性能如此之慢?
请注意,我在Mac OS X 10.6.6上使用R64 2.10.1.
我如何使用GitPython来确定是否:
要检查本地和远程是否相同,我这样做:
def local_and_remote_are_at_same_commit(repo, remote):
local_commit = repo.commit()
remote_commit = remote.fetch()[0].commit
return local_commit.hexsha == remote_commit.hexsha
Run Code Online (Sandbox Code Playgroud) 是否有一个开源软件包实现了"假的Amazon EC2"端点?具体来说,一个可用于测试与EC2通信的客户端(特别是使用boto)?
我知道有几个实现EC2 API的开源云解决方案(例如,OpenStack,Eucalyptus,CloudStack),但我正在寻找能够快速启动虚假EC2服务器并使用预设响应配置它的东西.测试目的.
python ×4
r ×2
regex ×2
aggregate ×1
amazon-ec2 ×1
boto ×1
dataframe ×1
filesystems ×1
git ×1
hfs+ ×1
javascript ×1
jquery ×1
methodology ×1
mocking ×1
ntfs ×1
sqlite ×1
testing ×1
vim ×1