我不是在谈论远景玻璃功能,我已经知道如何实现这一目标.我正在谈论的功能是为标题栏添加控件,就像Office 2007对标识和工具栏一样.
我一直试图弄清楚如何使用python检索(快速)给定HFS +驱动器上的文件数量.
我一直在玩os.statvfs等等,但不能得到任何东西(这对我来说似乎有帮助).
有任何想法吗?
编辑:让我更具体一点.=]
由于各种原因,我正在为rsync编写一个类似timemachine的包装器,并希望对rsync要扫描的驱动器上的文件数量进行非常快速的估计(不一定是完美的).通过这种方式,我可以在构建初始文件列表的同时观察rsync的进度(如果您调用它rsync -ax --progress,或者使用该-P选项),并向用户报告百分比和/或ETA.
这与实际备份完全分开,跟踪进度没有问题.但是对于我正在处理数百万个文件的驱动器,这意味着用户正在观看文件数量的计数器上升几分钟没有上限.
我尝试使用os.statvfs与目前为止的答案中描述的方法完全一致,但结果对我来说没有意义.
>>> import os
>>> os.statvfs('/').f_files - os.statvfs('/').f_ffree
64171205L
Run Code Online (Sandbox Code Playgroud)
更便携的方式在这台机器上给了我大约110万,这与我在这台机器上看到的其他指标相同,包括运行其准备工作的rsync:
>>> sum(len(filenames) for path, dirnames, filenames in os.walk("/"))
1084224
Run Code Online (Sandbox Code Playgroud)
请注意,第一种方法是即时的,而第二种方法让我在15分钟后回来更新,因为它花了那么长时间才能运行.
有没有人知道类似的方法来获得这个数字,或者我如何处理/解释os.statvfs数字有什么问题?
任何人都可以通过一个例子告诉我同步方法优于synchronized块的优势吗?
当我将一个数据数组作为cURL选项(通过CURLOPT_POSTFIELDS)分配时,我是否需要首先对该数据进行urlencode或将其处理?
我想去学习网络编程,但除了名字和一些html我什么都不知道.所以我问你推荐什么编程语言,为什么,用它做什么,学习工具等等.不知道它是否重要但我在Linux环境(Ubuntu)中编程.我不想做硬核网络编程,我只希望能够开发完整的网站和理解网络概念.
我经常遇到一个由接口或类表示的概念,然后我有一系列扩展它的子类/子接口.
例如:通用"DoiGraphNode"表示资源的"DoiGraphNode"表示Java资源的"DoiGraphNode"具有相关路径的"DoiGraphNode"等.
我可以想到三个命名约定,并希望评论如何选择.
选项1:始终以概念的名称开头.
因此:DoiGraphNode,DoiGraphNodeResource,DoiGraphNodeJavaResource,DoiGraphNodeWithPath等.
亲:很清楚我在处理什么,很容易看到我的所有选项
骗局:不是很自然?一切看起来都一样吗?
选项2:将特殊内容放在开头.
因此:DoiGraphNode,ResourceDoiGraphNode,JavaResourceDoiGraphNode,PathBaseDoiGraphNode等等.
亲:我在代码中看到的很清楚
Con:发现它可能很困难,特别是如果我不记得名字,缺乏视觉一致性
选项3:放入特殊内容并删除一些冗余文本
因此:DoiGraphNode,ResourceNode,JavaResourceNode,GraphNodeWithPath
Pro:没有那么多写和读Con:看起来像cr*p,非常不一致,可能与其他名称冲突
当我开始从Practical Common Lisp学习CL时,就像书中所说的那样,我开始使用Allegro CL编译器.我停止使用它,因为它的商业,但免费的位没有给我留下深刻的印象.它需要连接到远程服务器才能获得一些许可.
我切换到'clisp'并使用它.现在,我听说过SBCL并计划开始使用它.
所以,问题是:各种ANSI CL实现有何不同?使用一个在另一个上的任何实际经验?
谢谢.
本声明中的"=>"表示什么?
del = new SomeDelegate(() => SomeAction());
Run Code Online (Sandbox Code Playgroud)
以上声明是否与此相同?
del = new SomeDelegate(this.SomeAction);
Run Code Online (Sandbox Code Playgroud)
谢谢.
首先,我要确定我的文件夹目录中有文本文件.我使用visual studio,这是我的源代码编译的地方.
下面的代码应该说明它不起作用的原因.在视觉工作室.
int main( const int argc, const char **argv )
{
char usrMenuOption;
const char *cFileName = argv[ 1 ];
checkName( cFileName ); // supplying the checkName function with contents of argv[1]
usrMenuOption = getUsrOption(); // calling another function
fgetc(stdin);
return 0;
}
ifstream *openInputFile( const char *cFileName )
{
// this function might be the pronblem.
ifstream *inFile;
inFile = new ifstream;
inFile->open( cFileName, ios::in );
return inFile;
}
bool checkName( const char *cFileName )
{
// …Run Code Online (Sandbox Code Playgroud) 给出这样的字符串:
<a href="http://blah.com/foo/blah">This is the foo link</a>
Run Code Online (Sandbox Code Playgroud)
...和像"foo"这样的搜索字符串,我想强调HTML文本中出现的所有"foo" - 但不在标签内.换句话说,我想得到这个:
<a href="http://blah.com/foo/blah">This is the <b>foo</b> link</a>
Run Code Online (Sandbox Code Playgroud)
但是,简单的搜索和替换将不起作用,因为它将匹配<a>标记的href中的部分URL.
因此,要以问题的形式表达上述内容:如何限制正则表达式以使其仅匹配HTML标记之外的文本?
注意:我保证有问题的HTML永远不会像任何病态一样:
<img title="Haha! Here are some angle brackets to screw you up: ><" />
Run Code Online (Sandbox Code Playgroud)
编辑:是的,当然我知道CPAN中有复杂的库可以解析最令人发指的HTML,从而减少了对这种正则表达式的需求.在很多场合,这就是我会用的.但是,这不是其中之一,因为保持此脚本简短而没有外部依赖性非常重要.我只想要一行正则表达式.
编辑2:同样,我知道Template :: Refine :: Fragment可以解析我的所有HTML.如果我正在写一个应用程序我当然会使用这样的解决方案.但这不是一个应用程序.它只不过是一个shell脚本.这是一个一次性代码.在这种情况下,作为一个可以传递的单个自包含文件非常有价值."嘿,运行这个程序"是比一个简单得多的指令,"嘿,安装一个Perl模块,然后运行它 - 等等,什么,你以前从未使用过CPAN?好的,运行perl -MCPAN -e shell(最好作为根)然后它会问你一堆问题,但你真的不需要回答它们.不,不要害怕,这不会破坏任何东西.看,你不需要仔细回答每一个问题 - 只要一遍又一遍地进入.不,我保证,它不会破坏任何东西."
现在将上述内容扩展到大量用户,他们想知道为什么他们一直使用的简单脚本不再那么简单,当所有改变的是使搜索词变为粗体时.
因此,虽然Template :: Refine :: Fragment可能是其他人的HTML解析问题的答案,但这不是这个问题的答案.我只想要一个正则表达式,它适用于非常有限的HTML子集,实际上会要求脚本进行解析.