Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

6
使用SQLAlchemy ORM高效地更新数据库
我正在启动一个新应用程序,并考虑使用ORM,尤其是SQLAlchemy。 假设我的数据库中有一列“ foo”,我想增加它。在直通sqlite中,这很容易: db = sqlite3.connect('mydata.sqlitedb') cur = db.cursor() cur.execute('update table stuff set foo = foo + 1') 我弄清楚了SQLAlchemy SQL-builder等效项: engine = sqlalchemy.create_engine('sqlite:///mydata.sqlitedb') md = sqlalchemy.MetaData(engine) table = sqlalchemy.Table('stuff', md, autoload=True) upd = table.update(values={table.c.foo:table.c.foo+1}) engine.execute(upd) 这稍微慢一点,但是没有太多。 这是我对SQLAlchemy ORM方法的最佳猜测: # snip definition of Stuff class made using declarative_base # snip creation …
116 python  orm  sqlalchemy 

10
从列表列表中删除重复项
我在Python中有一个列表列表: k = [[1, 2], [4], [5, 6, 2], [1, 2], [3], [4]] 我想从中删除重复的元素。如果这是正常列表,而不是我可以使用的列表set。但不幸的是,该列表不可散列,因此无法建立一组列表。只有元组。因此,我可以将所有列表转换为元组,然后使用set并返回列表。但这不是很快。 如何以最有效的方式做到这一点? 上面的结果应为: k = [[5, 6, 2], [1, 2], [3], [4]] 我不在乎保留订单。 注意:这个问题很相似,但不是我所需要的。搜索了SO,但没有找到确切的重复项。 基准测试: import itertools, time class Timer(object): def __init__(self, name=None): self.name = name def __enter__(self): self.tstart = time.time() def __exit__(self, type, value, traceback): if …
116 python 

1
python3和python3m可执行文件之间的区别
是什么之间的区别/usr/bin/python3和/usr/bin/python3mexecutibles? 我在Ubuntu 13.04上观察到了它们,但是Google建议它们也存在于其他发行版中。 这两个文件具有相同的md5sum,但似乎不是符号链接或硬链接。这两个文件返回的索引节点号不同,ls -li并且测试find -xdev -samefile /usr/bin/python3.3不返回任何其他文件。 有人在AskUbuntu上问了类似的问题,但我想更多地了解这两个文件之间的区别。
116 python  python-3.x 


16
如何在Python的日志记录工具中添加自定义日志级别
我想为我的应用程序使用loglevel TRACE(5),因为我认为这debug()还不够。另外log(5, msg)不是我想要的。如何将自定义日志级别添加到Python记录器? 我有mylogger.py以下内容: import logging @property def log(obj): myLogger = logging.getLogger(obj.__class__.__name__) return myLogger 在我的代码中,我通过以下方式使用它: class ExampleClass(object): from mylogger import log def __init__(self): '''The constructor with the logger''' self.log.debug("Init runs") 现在我想打电话 self.log.trace("foo bar") 在此先感谢您的帮助。 编辑(2016年12月8日):我更改了pfa的公认答案,即IMHO,这是基于Eric S的非常好的建议的出色解决方案。

5
如何消除matplotlib中子图之间的间隙?
下面的代码在子图之间产生间隙。如何消除子图之间的间隙并使图像紧密网格? import matplotlib.pyplot as plt for i in range(16): i = i + 1 ax1 = plt.subplot(4, 4, i) plt.axis('on') ax1.set_xticklabels([]) ax1.set_yticklabels([]) ax1.set_aspect('equal') plt.subplots_adjust(wspace=None, hspace=None) plt.show()
116 python  matplotlib 


5
“无法解包的值太多”异常
我正在Django中进行项目开发,我刚刚开始尝试扩展User模型以创建用户个人资料。 不幸的是,我遇到一个问题:每次尝试在模板(user.get_template.lastIP例如)中获取用户的个人资料时,都会出现以下错误: 环境: 请求方法:GET 要求网址:http:// localhost:8000 / Django版本:1.1 Python版本:2.6.1 模板错误: 在模板/path/to/base.tpl中,第19行出现错误 渲染时遇到异常:太多值无法解压 19:您好,{{user.username}}({{user.get_profile.rep}})。近况如何?登出 异常类型:/处的TemplateSyntaxError 异常值:渲染时捕获到异常:太多值无法解包 关于发生了什么或我做错了什么的任何想法?
116 python  django 

10
Python函数作为函数参数吗?
Python函数可以作为另一个函数的参数吗? 说: def myfunc(anotherfunc, extraArgs): # run anotherfunc and also pass the values from extraArgs to it pass 所以这基本上是两个问题: 可以吗? 如果是的话,如何在其他函数中使用该函数?我需要使用exec(),eval()还是类似的东西?从来不需要与他们搞混。 顺便说一句,extraArgs是anotherfunc参数的列表/元组。

5
如何逐行描述Python代码?
我一直在使用cProfile来分析我的代码,并且效果很好。我还使用gprof2dot.py可视化结果(使其更加清晰)。 但是,cProfile(以及到目前为止我见过的大多数其他Python分析器)似乎仅在函数调用级别进行分析。当从不同位置调用某些函数时,这会引起混乱-我不知道调用#1还是调用#2占用了大部分时间。当所讨论的函数有六个层次的深度(从其他七个地方调用)时,情况甚至更糟。 如何获得逐行分析? 代替这个: function #12, total time: 2.0s 我想看这样的东西: function #12 (called from somefile.py:102) 0.5s function #12 (called from main.py:12) 1.5s cProfile确实显示了“转移”到父级的总时间,但是当您有许多层和相互连接的呼叫时,该连接也会丢失。 理想情况下,我希望有一个GUI可以解析数据,然后向我显示源文件以及每行的总时间。像这样: main.py: a = 1 # 0.0s result = func(a) # 0.4s c = 1000 # 0.0s result = func(c) # 5.0s 然后,我可以单击第二个“ func(c)”调用,以查看该调用中占用的时间,与“ func(a)”调用分开。 那有意义吗?是否有任何收集此类信息的性能分析库?我错过了一些很棒的工具吗?

6
在Python中递归复制文件或目录
Python似乎具有复制文件的功能(例如shutil.copy)和复制目录的功能(例如shutil.copytree),但是我还没有找到能够同时处理两者的函数。当然,检查要复制文件还是目录很简单,但这似乎很奇怪。 真的没有标准功能可以像unix cp -r命令那样工作,即是否同时支持目录和文件以及递归复制?在Python中解决此问题的最优雅方法是什么?
116 python 

17
如何将SQL查询结果转换为PANDAS数据结构?
在这个问题上的任何帮助将不胜感激。 因此,基本上我想对我的SQL数据库运行查询并将返回的数据存储为Pandas数据结构。 我已附上查询代码。 我正在阅读有关Pandas的文档,但是在识别查询的返回类型时遇到了问题。 我试图打印查询结果,但没有提供任何有用的信息。 谢谢!!!! from sqlalchemy import create_engine engine2 = create_engine('mysql://THE DATABASE I AM ACCESSING') connection2 = engine2.connect() dataid = 1022 resoverall = connection2.execute(" SELECT sum(BLABLA) AS BLA, sum(BLABLABLA2) AS BLABLABLA2, sum(SOME_INT) AS SOME_INT, sum(SOME_INT2) AS SOME_INT2, 100*sum(SOME_INT2)/sum(SOME_INT) AS ctr, sum(SOME_INT2)/sum(SOME_INT) AS cpc FROM daily_report_cooked WHERE campaign_id = …



2
模拟类:Mock()或patch()?
我在Python中使用模拟,并想知道这两种方法中哪一种更好(请参阅:更多pythonic)。 方法一:只需创建一个模拟对象并使用它即可。代码如下: def test_one (self): mock = Mock() mock.method.return_value = True self.sut.something(mock) # This should called mock.method and checks the result. self.assertTrue(mock.method.called) 方法二:使用补丁创建一个模拟。代码如下: @patch("MyClass") def test_two (self, mock): instance = mock.return_value instance.method.return_value = True self.sut.something(instance) # This should called mock.method and checks the result. self.assertTrue(instance.method.called) 两种方法都做同样的事情。我不确定这些差异。 谁能启发我?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.