Tag: python

为什么std :: string操作性能不佳?

我做了一个testing,比较几种语言的string操作,为服务器端应用程序select一种语言。 结果似乎是正常的,直到我终于尝试C ++,这让我很吃惊。 所以我想知道我是否错过了任何优化,并来这里寻求帮助。 testing主要是密集的string操作,包括连接和search。 testing在Ubuntu 11.10 amd64上执行,GCC版本为4.6.1。 该机器是戴尔Optiplex 960,具有4G RAM和四核CPU。 在Python(2.7.2)中: def test(): x = "" limit = 102 * 1024 while len(x) < limit: x += "X" if x.find("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 0) > 0: print("Oh my god, this is impossible!") print("x's length is : %d" % len(x)) test() 这给出了结果: x's length is : 104448 real […]

Python:代码完成时声音报警

我处于这样一种情况,即我的代码需要很长的时间才能运行,我不想一直盯着它,而是想知道什么时候完成。 我怎样才能使(Python)的代码types的声音“报警”,当它完成? 我正在考虑让它播放一个.wav文件,当它到达代码的结尾… 这是一个可行的想法吗? 如果是这样,我该怎么办呢?

我如何重新排列列表?

如果我有一个列表[a,b,c,d,e] ,我怎样才能像[d,c,a,b,e]这样的任意方式重新排列项目? 编辑:我不想洗牌他们。 我想以预定义的方式对它们进行重新sorting。 (例如,我知道旧列表中的第三个元素应该成为新列表中的第一个元素)

Python,单独添加尾随斜杠到目录string,操作系统

如果尾部的斜线不在那里,我怎样才能在目录string中添加一个斜线( / for * nix, \ for win32)? 谢谢!

python和sys.argv

if len(sys.argv) < 2: sys.stderr.write('Usage: sys.argv[0] ') sys.exit(1) if not os.path.exists(sys.argv[1]): sys.stderr.write('ERROR: Database sys.argv[1] was not found!') sys.exit(1) 这是我正在处理的代码的一部分。 我想说的第一部分,如果用户不键入python programname something那么它将退出。 第二部分我试图看看数据库是否存在。 在这两个地方,我不确定是否有正确的方式写出stderr的sys.argv的。

Shell脚本:从一个shell脚本中执行一个python程序

我试着用Googlesearch答案,但没有运气。 我需要使用我的超级计算机服务器,但是为了运行我的python脚本,它必须通过shell脚本来执行。 例如,我想job.sh来执行python_script.py 这怎么能做到呢?

SQLAlchemy:创build与重用会话

只是一个简单的问题:SQLAlchemy会谈论调用sessionmaker()一次,但每次需要与您的数据库交谈时调用生成的Session()类。 对于我来说这意味着第二次我会做我的第一次session.add(x)或类似的东西,我会先做 from project import Session session = Session() 到目前为止我所做的是在我的模型中调用session = Session() ,然后在应用程序中的任何位置总是导入相同的会话。 由于这是一个web应用程序,这通常意味着相同的(作为一个视图执行)。 但是区别在哪里? 使用一个会话一直反对使用它的数据库的东西,直到我的function完成,然后创build一个新的下一次我想谈谈我的数据库的缺点是什么? 我得到,如果我使用多个线程,每个人应该得到自己的会议。 但是使用scoped_session() ,我已经确定这个问题不存在,是吗? 请澄清我的假设是否有错误。

python四克,五克,六克?

我正在寻找一种将文本分成n-gram的方法。 通常我会做这样的事情: import nltk from nltk import bigrams string = "I really like python, it's pretty awesome." string_bigrams = bigrams(string) print string_bigrams 我知道nltk只提供bigrams和trigrams,但是有没有办法把文本分成四克,五克甚至几百克? 谢谢!

在Python中获取索引超出范围的默认值

a=['123','2',4] b=a[4] or 'sss' print b 当列表索引超出范围(这里: 'sss' )时,我想得到一个默认值。 我怎样才能做到这一点?

“安装mysql-python时,无法打开包含文件:'config-win.h':没有这样的文件或目录”

我想在windows上使用pip在virtualenv中安装mysql-python。 起初,我收到了同样的错误报告 ,但答案也适用于我。 现在我收到以下错误: _mysql.c(34) : Fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory 如果我符号链接(Win7)到我的常规(而不是virtualenv)Python的站点包/ MySQLdb目录我得到 Error loading MySQLdb module: No module named _mysql 我在这里不知所措 任何指针?