我想获取当前文件的目录path。 我试过了: >>> os.path.abspath(__file__) 'C:\\python27\\test.py' 但是,我怎样才能检索目录的path? 例如: 'C:\\python27\\'
对于C ++,我们可以使用OpenMP来进行并行编程,但是,OpenMP将不能用于Python,如果我想平行Python程序的某些部分,该怎么办? 代码的结构可以被认为是: solve1(A) solve2(B) solve1和solve2是两个独立的函数。 如何并行而不是按顺序运行这种代码,以减less运行时间? 希望有人能帮助我。 非常感谢。 代码是: def solve(Q,G,n): i = 0 tol = 10**-4 while i < 1000: inneropt,partition,x = setinner(Q,G,n) outeropt = setouter(Q,G,n) if (outeropt – inneropt)/(1 + abs(outeropt) + abs(inneropt)) < tol: break node1 = partition[0] node2 = partition[1] G = updateGraph(G,node1,node2) if i == 999: print "Maximum iteration […]
我已经看到很多人从一个模块中提取所有类的例子,通常是这样的: # foo.py class Foo: pass # test.py import inspect import foo for name, obj in inspect.getmembers(foo): if inspect.isclass(obj): print obj 真棒。 但是我不知道如何从当前模块中获取所有的类。 # foo.py import inspect class Foo: pass def print_classes(): for name, obj in inspect.getmembers(???): # what do I do here? if inspect.isclass(obj): print obj # test.py import foo foo.print_classes() 这可能是很明显的,但我一直没有find任何东西。 谁能帮我吗?
网上有各种各样的片断,会给你一个函数,从字节大小返回可读的大小: >>> human_readable(2048) '2 kilobytes' >>> 但有没有一个Python库提供这个?
Django有一些很好的从DB到JSON格式返回的ORM模型的自动序列化。 如何将SQLAlchemy查询结果序列化为JSON格式? 我试过jsonpickle.encode但它编码查询对象本身。 我试过json.dumps(items)但它返回 TypeError: <Product('3', 'some name', 'some desc')> is not JSON serializable 将SQLAlchemy ORM对象序列化为JSON / XML真的很难吗? 没有任何默认序列化程序? 现在序列化ORM查询结果是很常见的任务。 我需要的只是返回SQLAlchemy查询结果的JSON或XML数据表示。 JSON格式的SQLAlchemy对象查询结果需要在javascript datagird中使用(JQGrid http://www.trirand.com/blog/ )
代表和解决一个迷宫的最佳方式是什么? 给出一个JPEG图像(如上所示),读入它的最佳方式是什么,将其parsing为一些数据结构并解决迷宫问题? 我的第一本能是逐像素地读取图像,并将其存储在布尔值的列表(数组)中:对于白色像素为True ,对于非白色像素为False (可以丢弃颜色)。 这个方法的问题是,图像可能不是“像素完美”。 我只是说,如果在墙上的某个地方有一个白色像素,它可能会产生一个无意的path。 另一种方法(经过一番思考后find的)是将图像转换为SVG文件 – 这是在canvas上绘制的path列表。 这样,path可以被读入相同types的列表(布尔值),其中True表示path或墙壁, False表示可行驶的空间。 如果转换不是100%准确的,并且没有完全连接所有的墙壁,则会产生这种方法的问题,造成空白。 另外一个转换为SVG的问题是线条不是“完美”的直线。 这导致path为三次贝塞尔曲线。 对于由整数索引的布尔值列表(数组),曲线不会轻易转移,曲线上的所有点将不得不计算,但与列表索引不完全匹配。 我认为,虽然其中一种方法可能有效(尽pipe可能不是),但鉴于这样一个大的形象,它们可能是效率低下的,而且存在一个更好的方法。 这是如何最好(最有效和/或最简单的)? 还有最好的方法吗? 然后是解决迷宫。 如果我使用前两种方法中的任何一种,我将基本上以matrix结束。 根据这个答案 ,代表一个迷宫的一个好方法是使用一棵树,而解决这个问题的一个好方法是使用A *algorithm 。 如何从图像中创build一棵树? 有任何想法吗? TL; DR 最好的parsing方法? 进入什么数据结构? 上述结构如何帮助/阻碍解决? UPDATE 我已经试过我的手在实现@Mikhail使用numpy编写的Python,就像@Thomas推荐的一样。 我觉得这个algorithm是正确的,但是这个algorithm并没有像预期的那样工作。 (代码如下)PNG库是PyPNG 。 import png, numpy, Queue, operator, itertools def is_white(coord, image): """ Returns whether (x, y) is approx. a white […]
我把Project Euler的 问题#12作为一个编程练习,比较了C,Python,Erlang和Haskell中的我的(当然不是最优的)实现。 为了获得更高的执行时间,我search了第一个有1000个以上因子的三angular形数字,而不是原始问题中所述的500。 结果如下: C: lorenzo@enzo:~/erlang$ gcc -lm -o euler12.bin euler12.c lorenzo@enzo:~/erlang$ time ./euler12.bin 842161320 real 0m11.074s user 0m11.070s sys 0m0.000s python: lorenzo@enzo:~/erlang$ time ./euler12.py 842161320 real 1m16.632s user 1m16.370s sys 0m0.250s Python与PyPy: lorenzo@enzo:~/Downloads/pypy-c-jit-43780-b590cf6de419-linux64/bin$ time ./pypy /home/lorenzo/erlang/euler12.py 842161320 real 0m13.082s user 0m13.050s sys 0m0.020s 二郎: lorenzo@enzo:~/erlang$ erlc euler12.erl lorenzo@enzo:~/erlang$ time erl -s euler12 solve […]
我第一次尝试从GitHub上安装一些东西,但在这里和谷歌search后找不到一个简单的解决scheme。 我正在使用Jupyter笔记本,并试图安装此模块: https://github.com/Expt-David/NumSchrodingerEq 我试图写在笔记本里面: !pip install git+git://github.com/Expt-David/NumSchrodingerEq.git 但我收到以下错误: Collecting git+git://github.com/Expt-David/NumSchrodingerEq.git Cloning git://github.com/Expt-David/NumSchrodingerEq.git to c:\users\greatg~1\appdata\local\temp\pip-1w_dpw43-build Error [WinError 2] The system cannot find the file specified while executing command git clone -q git://github.com/Expt-David/NumSchrodingerEq.git C:\Users\GREATG~1\AppData\Local\Temp\pip-1w_dpw43-build Cannot find command 'git' You are using pip version 8.1.2, however version 9.0.1 is available. You should consider upgrading via the 'python -m […]
我有一个HTML表单发布到Flask路由。 但是, request.form是空的。 如果我尝试访问其中一个值,我得到一个400错误。 如何从HTML表单发布值并在Flask中访问它们? <form method="POST"> <input id="my_input" type="text" value="{{ email }}"> <input id="my_submit" type="submit" value="Submit"> </form> @app.route('/page', methods=['POST', 'GET']) def get_page(): if request.method == 'POST': print(request.form) # prints ImmutableMultiDict([]) print(request.form['my_input']) # raises 400 error return render_template('page.html')
我正在使用arange函数来定义我的for循环迭代和获得意想不到的结果。 i = arange(7.8,8.4,0.05) print i 提供以下内容: [ 7.8 7.85 7.9 7.95 8. 8.05 8.1 8.15 8.2 8.25 8.3 8.35 8.4 ] 但使用8.35的停止值如下 i = arange(7.8,8.35,0.05) 产生以下结果 [ 7.8 7.85 7.9 7.95 8. 8.05 8.1 8.15 8.2 8.25 8.3 ] 但我希望我的范围在8.35结束! 我知道我可以使用> 8.35和<8.4的停止值来达到我的效果,但是为什么它不一样,在我的脑海中是不一致的呢? 编辑:我正在使用版本2.7