我是Python的新手,我有一个简单的问题,说我有一个项目列表: ['apple','red','apple','red','red','pear'] 什么是最简单的方式将列表项添加到字典中,并计算项目出现在列表中的次数。 所以对于上面的列表,我想输出为: {'apple': 2, 'red': 3, 'pear': 1}
我对PyDev和Python很新,尽pipe我已经使用了Eclipse的Java。 我试图通过一些Dive Into Python的例子,这感觉就像一个非常微不足道的问题,只是变得非常烦人。 我正在使用Ubuntu Linux 10.04。 我希望能够使用位于/Desktop/Python_Tutorials/diveintopython/py目录下的文件odbchelper.py 这是我在我的PyDev / Eclipse项目中处理的example.py文件: import sys sys.path.append("~/Desktop/Python_Tutorials/diveintopython/py") 这工作正常,但是我希望我的代码的下一行是: import odbchelper 并且每次都会导致未解决的导入错误。 我已经将__init__.py文件添加到几乎所有可能的目录中,并且不起任何作用。 我试着一次一个地添加__init__.py文件到项目位置和odbchelper.py文件之间的不同级别的目录,并且我也尝试将__init__.py文件同时添加到所有的目录中。 两者都行不通。 我想要做的是有一个项目在某个其他目录,例如/Desktop/MyStuff/Project ,其中我有example.py …然后从example.py我想要从/Desktop/Python_Tutorials/diveintopython/py/导入odbchelper.py /Desktop/Python_Tutorials/diveintopython/py/ 每个留言板响应我可以find只是说使用sys.path.append()函数将此目录添加到我的path,然后导入它…但这正是我在我的代码中做的,它不工作。 我也尝试了Ctrl – 1技巧来抑制错误信息,但程序仍然无法正常工作。 我得到一个错误, ImportError: No module named odbchelper 。 所以显然没有得到添加的path,或者有一些问题,我所有的添加__init__.py文件的所有排列都错过了。 很简单,这个简单的东西…从我的机器上某处存在的某个文件中调用…需要这么多的努力。
我试图禁用警告C0321(“在一条线上多于一条语句” – 我经常在同一行中input简短的单行结果的语句),在Pylint 0.21.1(如果重要的话:astng 0.20 .1,常见的0.50.3,Python 2.6.6(r266:84292,2010年9月15日,16:22:56))。 我已经尝试在disable=C0321configuration文件中添加disable=C0321 ,但Pylint坚持要报告它。 该行的变化(如disable=0321或disable=C321 )被标记为错误,所以Pylint 确实认识到这个选项,它只是忽略它。 这是一个Pylint错误,还是我做错了什么? 有没有办法解决? 我真的很想摆脱一些这种噪音。
在我之前的问题中 ,我对于我的问题并不是非常具体(用Scrapyauthentication的会话),希望能够从更一般的答案中推导出解决scheme。 我应该使用crawling这个词。 所以,这里是我的代码到目前为止: class MySpider(CrawlSpider): name = 'myspider' allowed_domains = ['domain.com'] start_urls = ['http://www.domain.com/login/'] rules = ( Rule(SgmlLinkExtractor(allow=r'-\w+.html$'), callback='parse_item', follow=True), ) def parse(self, response): hxs = HtmlXPathSelector(response) if not "Hi Herman" in response.body: return self.login(response) else: return self.parse_item(response) def login(self, response): return [FormRequest.from_response(response, formdata={'name': 'herman', 'password': 'password'}, callback=self.parse)] def parse_item(self, response): i['url'] = response.url […]
理论上,Dalvik执行任何虚拟机字节码,例如用编译器创build AspectJ的 ColdFusion的 Clojure的 Groovy的 JavaFX脚本 JRuby的 Jython的 犀牛 斯卡拉 Dalvik的字节码编译器是否已经可以用于除Java以外的其他语言?
从最近的SO问题(请参阅在Python中创build一个由列表索引的字典 ),我意识到我可能对python中的可哈希和不可变对象的含义有错误的概念。 可行性在实践中意味着什么? 可哈希和不可变的关系是什么? 有可变的对象是可哈希或不可变的不可哈代对象?
我的背景是在C#中,我刚刚开始用Python编程。 当抛出一个exception时,我通常要把它包装在另一个exception中,以增加更多信息,同时仍然显示完整的堆栈跟踪。 在C#中很容易,但是我怎样在Python中做到这一点? 例如。 在C#中我会做这样的事情: try { ProcessFile(filePath); } catch (Exception ex) { throw new ApplicationException("Failed to process file " + filePath, ex); } 在Python中,我可以做类似的事情: try: ProcessFile(filePath) except Exception as e: raise Exception('Failed to process file ' + filePath, e) …但这失去了内部exception的追溯! 编辑:我想看到这两个exception消息和两个堆栈跟踪和相关的两个。 也就是说,我想在输出中看到exceptionX在这里出现,然后出现exceptionY – 和我在C#中一样。 这在Python 2.6中可能吗? 看起来目前为止我能做的最好的(基于Glenn Maynard的回答)是: try: ProcessFile(filePath) except Exception as e: […]
Python在Python中的含义是什么? 下面的代码是做什么的? 例如… if len(sys.argv) < 2: sys.exit('Usage: %s database-name' % sys.argv[0]) if not os.path.exists(sys.argv[1]): sys.exit('ERROR: Database %s was not found!' % sys.argv[1])
我需要将前导零添加到整数以创build一个具有定义的数字位数($ cnt)的string。 将这个简单的函数从PHP转换成Python的最佳方式是什么? function add_nulls($int, $cnt=2) { $int = intval($int); for($i=0; $i<($cnt-strlen($int)); $i++) $nulls .= '0'; return $nulls.$int; } 有没有一个function可以做到这一点?
我正在构build一个Web应用程序,该应用程序具有我想通过长轮询机制进行更新的实时Feed(类似于Facebook的新闻源)。 我知道用Python,我的select很多都是使用Stackless(从他们的Comet wsgi示例构build)或Cometd + Twisted。 不幸的是,有关这些选项的文档很less,我不能在网上find有关Python的彗星生产规模用户的良好信息。 有没有人在生产系统上成功地实现Python的彗星? 你是怎么做到的?在哪里可以find资源去实现我自己的?