我想在一个跨平台(windows/mac/linux)Python应用程序中,在相应的文件管理器中打开一个文件夹窗口.
在OSX上,我可以在finder中打开一个窗口
os.system('open "%s"' % foldername)
Run Code Online (Sandbox Code Playgroud)
并在Windows上
os.startfile(foldername)
Run Code Online (Sandbox Code Playgroud)
那unix/linux怎么样?有没有标准的方法来做到这一点,或者我需要特殊情况gnome/kde/etc并手动运行相应的应用程序(nautilus/konqueror/etc)?
这看起来像是可以由freedesktop.org人员指定的东西(一个python模块,类似于webbrowser,也会很好!).
你能建议一些轻量级模糊文本搜索库吗?
我想要做的是允许用户使用拼写错误找到搜索字词的正确数据.
我可以使用像Lucene这样的全文搜索引擎,但我认为这是一种过度杀伤力.
编辑:
为了使问题更清楚,这里是该库的主要场景:
我有一个很大的字符串列表.我希望能够在此列表中搜索(类似于MSVS的intellisense)但是应该可以通过字符串过滤此列表,该字符串不存在于其中,但足够接近列表中的某个字符串.
例:
当我在文本框中输入'Gren'或'Geen'时,我想在结果集中看到'Green'.
索引数据的主要语言是英语.
我认为Lucene对于这项任务非常重要.
更新:
我找到了一个符合我要求的产品.这是ShuffleText.
你知道其他选择吗?
按照这个在相关的线程评论,我想知道为什么基于Levenshtein距离方法比探测法更好.
在SQL Server 2005中,查询分析器多次告诉我在已经具有聚簇索引的表的主ID列上创建非聚簇索引.遵循此建议后,查询执行计划将报告查询应该更快.
为什么同一列上的非聚集索引(具有相同的排序顺序)比聚簇索引更快?
我现在正在学习Python,我们只是将元组作为数据类型之一.我阅读了维基百科页面,但是,我无法弄清楚这种数据类型在实践中的用处.我是否可以在Python中提供一些示例,其中需要一组不可变的数字?这与列表有什么不同?
我已经生成了一些JSON,我试图将它拉入JavaScript中的对象.我一直在收到错误.这就是我所拥有的:
var data = '{"count" : 1, "stack" : "sometext\n\n"}';
var dataObj = eval('('+data+')');
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误:
unterminated string literal
Run Code Online (Sandbox Code Playgroud)
有了JSON.parse(data),我看到类似的错误消息:Unexpected token ?Chrome中的" unterminated string literal"和Firefox和IE中的" ".
当我取出\n后sometext,错误消失了两种情况.我似乎无法弄清楚为什么\n制造eval和JSON.parse失败.
这里发生了什么?
printf.sh:
#! /bin/sh
NAME="George W. Bush"
printf "Hello, %s\n" $NAME
Run Code Online (Sandbox Code Playgroud)
命令行会话:
$ ./printf.sh
Hello, George
Hello, W.
Hello, Bush
Run Code Online (Sandbox Code Playgroud)
更新:printf "Hello, %s\n" "$NAME"有效.为什么我没有使用echo,请考虑
echo.sh:
#! /bin/sh
FILE="C:\tmp"
echo "Filename: $FILE"
Run Code Online (Sandbox Code Playgroud)
命令行:
$ ./echo.sh
Filename: C: mp
Run Code Online (Sandbox Code Playgroud)
该POSIX规范的echo说,"我们鼓励新的应用程序使用printf,而不是echo"(这和其他原因).
您知道哪些机制可以防止您的网站被匿名垃圾邮件发送者滥用.
例如,假设我有一个人们可以投票的网站.但我不希望有人一路垃圾邮件到顶部.所以我发现(a)创建一个帐户,只允许投票一次,(b)CAPTCHA减少垃圾邮件.您还知道其他哪些方法以及它们有多好?