Questions tagged «python»

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

15
在Python中运行外部程序(可执行文件)?
我刚开始使用Python,并且一直在尝试从Python运行外部可执行文件。 我有一个用Fortran编写的程序的可执行文件。假设可执行文件的名称为flow.exe。我的可执行文件位于中C:\Documents and Settings\flow_model。我同时尝试了os.system和popen命令,但是到目前为止,我无法使其正常工作。以下代码似乎可以打开命令窗口,但不会执行模型。 # Import system modules import sys, string, os, arcgisscripting os.system("C:/Documents and Settings/flow_model/flow.exe") 我怎样才能解决这个问题?


3
PyCharm可以列出项目中的所有Python错误吗?
我在虚拟环境中使用python 2.7和PyCharm 2.7(自2013年2月7日起新建)。 每当我在其中打开一个具有明确错误(等同于其他语言的编译错误,例如,使用未声明的变量,调用不存在的函数)的python文件时,该文件的装订线中就会显示红色条纹。 因此,当我偶然浏览到包含错误的文件时,我会随机发现错误。我真正想要的是能够在单独的窗口中列出所有python错误。Visual Studio 2005/2008/2010 / ... IDE具有一个单独的“错误”视图,该视图列出了所有文件,文件名和行号,并使我能够单击这些错误中的任何一个并直接导航至资源。 PyCharm有这样的东西吗?

2
在多个进程之间共享结果队列
该multiprocessing模块的文档显示了如何将队列传递给以开头的进程multiprocessing.Process。但是,如何与开始的异步工作进程共享队列apply_async?我不需要动态加入或其他任何方法,而只是工人(反复)将其结果报告给基地的一种方法。 import multiprocessing def worker(name, que): que.put("%d is done" % name) if __name__ == '__main__': pool = multiprocessing.Pool(processes=3) q = multiprocessing.Queue() workers = pool.apply_async(worker, (33, q)) 失败的原因是: RuntimeError: Queue objects should only be shared between processes through inheritance。我理解这意味着什么,并且我理解继承的建议,而不是要求进行酸洗/取消酸洗(以及所有Windows特殊限制)。但如何做我通过队列的方式,作品?我找不到一个示例,并且我尝试了多种失败的替代方法。请帮助?

5
在同一图中绘制不同的数据框
我有一个具有多年温度记录的温度文件,格式如下: 2012-04-12,16:13:09,20.6 2012-04-12,17:13:09,20.9 2012-04-12,18:13:09,20.6 2007-05-12,19:13:09,5.4 2007-05-12,20:13:09,20.6 2007-05-12,20:13:09,20.6 2005-08-11,11:13:09,20.6 2005-08-11,11:13:09,17.5 2005-08-13,07:13:09,20.6 2006-04-13,01:13:09,20.6 每年的记录数量和时间不同,因此熊猫的datetimeindices都不同。 我想在同一图中绘制不同年份的数据以进行比较。X轴为1月至12月,Y轴为温度。我应该怎么做呢?

3
确定是否在Python中将根记录器设置为DEBUG级别?
如果使用以下命令行参数将日志记录模块设置为DEBUG: if (opt["log"] == "debug"): logging.basicConfig(level=logging.DEBUG) 以后如何判断记录器是否设置为DEBUG?我正在编写一个装饰器,如果将True标志传递给它,它将为函数计时,如果没有给出标志,则默认情况下,当根记录器设置为DEBUG时,它会打印计时信息。

5
Python-将一个函数传递给另一个函数
我正在使用python解决一个难题,根据要解决的难题,我将不得不使用一组特殊的规则。如何在Python中将一个函数传递给另一个函数? 例 def Game(listA, listB, rules): if rules == True: do... else: do... def Rule1(v): if "variable_name1" in v: return False elif "variable_name2" in v: return False else: return True def Rule2(v): if "variable_name3" and "variable_name4" in v: return False elif "variable_name4" and variable_name1 in v: return False else: return …

6
如何在Ipython Notebook中的循环中动态更新绘图(在一个单元格内)
环境:Python 2.7,matplotlib 1.3,IPython Notebook 1.1,Linux,Chrome。该代码位于一个输入单元格中,使用--pylab=inline 我想使用IPython笔记本和熊猫消耗流并每5秒动态更新一次绘图。 当我仅使用print语句以文本格式打印数据时,它就可以很好地工作:输出单元格仅保留打印数据并添加新行。但是,当我尝试绘制数据(然后循环更新)时,该绘制永远不会显示在输出单元格中。但是,如果我删除了循环,则只需绘制一次即可。它工作正常。 然后我做了一些简单的测试: i = pd.date_range('2013-1-1',periods=100,freq='s') while True: plot(pd.Series(data=np.random.randn(100), index=i)) #pd.Series(data=np.random.randn(100), index=i).plot() also tried this one time.sleep(5) 在我手动中断该进程(ctrl + m + i)之前,输出不会显示任何内容。在我中断它之后,该图正确显示为多条重叠线。但是我真正想要的是一个显示并每5秒更新一次的图(或者每当plot()调用函数时,就像我上面提到的print语句输出一样,效果很好)。仅在单元格完全完成后显示最终图表不是我想要的。 我什至尝试在每个plot()等之后显式添加draw()函数。它们都不起作用。想知道如何在IPython Notebook中的一个单元格中通过for / while循环动态更新绘图。

6
PYTHONPATH vs.sys.path
我和另一位开发人员不同意应该使用PYTHONPATH还是sys.path来允许Python在用户(例如,开发)目录中找到Python包。 我们有一个具有典型目录结构的Python项目: Project setup.py package __init__.py lib.py script.py 在script.py中,我们需要这样做import package.lib。当该软件包安装在site-packages中时,script.py可以找到package.lib。 但是,从用户目录工作时,还需要做其他事情。我的解决方案是将我的PYTHONPATH设置为包括“〜/ Project”。另一位开发人员希望将这行代码放在script.py的开头: sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 以便Python可以找到的本地副本package.lib。 我认为这是一个坏主意,因为该行仅对开发人员或从本地副本运行的人有用,但是我不能给出一个很好的理由,说明它不是一个好主意。 我们应该使用PYTOHNPATH,sys.path还是很好?

30
使用Python进行快速排序
我对python完全陌生,我正在尝试在其中实现quicksort。有人可以帮我完成我的代码吗? 我不知道如何连接三个数组并打印它们。 def sort(array=[12,4,5,6,7,3,1,15]): less = [] equal = [] greater = [] if len(array) > 1: pivot = array[0] for x in array: if x < pivot: less.append(x) if x == pivot: equal.append(x) if x > pivot: greater.append(x) sort(less) sort(pivot) sort(greater)

8
如何使用Python将网页转换为PDF
我正在寻找使用Python将网页打印为本地文件PDF的解决方案。很好的解决方案之一是使用Qt,请参见https://bharatikunal.wordpress.com/2010/01/。 由于我在安装PyQt4时遇到问题,因此一开始它不起作用,因为它给出了错误消息,例如“ ImportError: No module named PyQt4.QtCore”和“ ImportError: No module named PyQt4.QtCore”。 这是因为PyQt4没有正确安装。我以前的库位于C:\ Python27 \ Lib,但是它不适用于PyQt4。 实际上,它只需要从http://www.riverbankcomputing.com/software/pyqt/download下载(注意所使用的正确Python版本),然后将其安装到C:\ Python27(我的情况)。而已。 现在脚本运行良好,所以我想分享一下。有关使用Qprinter的更多选项,请参考http://qt-project.org/doc/qt-4.8/qprinter.html#Orientation-enum。
92 python  html  pdf  qprinter 

6
大熊猫的行程是否有性能问题?
我注意到使用大熊猫的散列时的效果非常差。 这是别人的经历吗?它特定于迭代吗?对于一定大小的数据(我要处理2-3百万行),应该避免使用此功能吗? 在GitHub上进行的讨论使我相信,这是在数据帧中混合dtypes时引起的,但是下面的简单示例显示,即使使用一个dtype(float64)也存在该问题。这在我的机器上需要36秒: import pandas as pd import numpy as np import time s1 = np.random.randn(2000000) s2 = np.random.randn(2000000) dfa = pd.DataFrame({'s1': s1, 's2': s2}) start = time.time() i=0 for rowindex, row in dfa.iterrows(): i+=1 end = time.time() print end - start 为什么矢量化运算之类的应用这么快?我想象那里也必须进行逐行迭代。 我无法弄清楚如何在我的情况下不使用迭代(这将在以后的问题中进行介绍)。因此,如果您一直能够避免这种迭代,不胜感激。我正在基于单独数据框中的数据进行计算。谢谢! ---编辑:下面添加了我要运行的简化版本--- import pandas as pd import …

10
Python中的字符串分段
我正在寻找“塞子”字符串的最佳方法,“塞子” 是什么,而我目前的解决方案基于此配方 我将其更改为: s = 'String to slugify' slug = unicodedata.normalize('NFKD', s) slug = slug.encode('ascii', 'ignore').lower() slug = re.sub(r'[^a-z0-9]+', '-', slug).strip('-') slug = re.sub(r'[-]+', '-', slug) 有人看到此代码有任何问题吗?它工作正常,但也许我缺少某些东西,或者您知道更好的方法?
92 python  slug 

5
在matplotlib条形图上添加值标签
我陷入一种感觉应该相对容易的事情上。我在下面提供的代码是基于我正在从事的一个较大项目的示例。我没有理由发布所有详细信息,因此请原样接受我带来的数据结构。 基本上,我正在创建一个条形图,并且我可以弄清楚如何在条形图上(在条形图的中心或上方)添加值标签。一直在网上查看示例,但在我自己的代码上实现未成功。我认为解决方案是使用“文本”或“注释”,但是我:a)不知道使用哪个(通常来说,还没有弄清楚何时使用哪个)。b)看不到要显示值标签。感谢您的帮助,下面是我的代码。提前致谢! import numpy as np import pandas as pd import matplotlib.pyplot as plt pd.set_option('display.mpl_style', 'default') %matplotlib inline # Bring some raw data. frequencies = [6, 16, 75, 160, 244, 260, 145, 73, 16, 4, 1] # In my original code I create a series and run on that, # …

5
使用Python的timeit获取“未定义全局名称'foo'
我试图找出执行一条Python语句所花费的时间,所以我在网上看了一下,发现标准库提供了一个名为timeit的模块,该模块据称可以做到这一点: import timeit def foo(): # ... contains code I want to time ... def dotime(): t = timeit.Timer("foo()") time = t.timeit(1) print "took %fs\n" % (time,) dotime() 但是,这会产生一个错误: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in dotime File "/usr/local/lib/python2.6/timeit.py", line 193, …
92 python  scope  timeit 

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.