Questions tagged «sys»



3
numpy数组的Python内存使用情况
我正在使用python分析一些大文件,并且遇到了内存问题,因此我一直在使用sys.getsizeof()来跟踪使用情况,但是numpy数组的行为很奇怪。这是一个涉及我必须打开的反照率地图的示例: >>> import numpy as np >>> import struct >>> from sys import getsizeof >>> f = open('Albedo_map.assoc', 'rb') >>> getsizeof(f) 144 >>> albedo = struct.unpack('%df' % (7200*3600), f.read(7200*3600*4)) >>> getsizeof(albedo) 207360056 >>> albedo = np.array(albedo).reshape(3600,7200) >>> getsizeof(albedo) 80 数据仍然存在,但是对象的大小(3600x7200像素图)已从约200 Mb变为80字节。我希望我的内存问题已经解决,并将所有内容都转换为numpy数组,但是我认为这种行为(如果为真)在某种程度上会违反某些信息论定律或热力学定律,等等。倾向于相信getsizeof()不适用于numpy数组。有任何想法吗?
156 python  numpy  sys 

2
Python的sys.path是从哪里初始化的?
Python的sys.path是从哪里初始化的? UPD:Python在引用PYTHONPATH之前添加了一些路径: >>> import sys >>> from pprint import pprint as p >>> p(sys.path) ['', 'C:\\Python25\\lib\\site-packages\\setuptools-0.6c9-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\orbited-0.7.8-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\morbid-0.8.6.1-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\demjson-1.4-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\stomper-0.2.2-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\uuid-1.30-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\stompservice-0.1.0-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\cherrypy-3.0.1-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\pyorbited-0.2.2-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\flup-1.0.1-py2.5.egg', 'C:\\Python25\\lib\\site-packages\\wsgilog-0.1-py2.5.egg', 'c:\\testdir', 'C:\\Windows\\system32\\python25.zip', 'C:\\Python25\\DLLs', 'C:\\Python25\\lib', 'C:\\Python25\\lib\\plat-win', 'C:\\Python25\\lib\\lib-tk', 'C:\\Python25', 'C:\\Python25\\lib\\site-packages', 'C:\\Python25\\lib\\site-packages\\PIL', 'C:\\Python25\\lib\\site-packages\\win32', 'C:\\Python25\\lib\\site-packages\\win32\\lib', 'C:\\Python25\\lib\\site-packages\\Pythonwin'] 我的PYTHONPATH是: PYTHONPATH=c:\testdir 我想知道PYTHONPATH之前的那些路径来自哪里?
111 python  path  sys 

10
从脚本捕获标准输出?
假设有一个脚本执行以下操作: # module writer.py import sys def write(): sys.stdout.write("foobar") 现在假设我要捕获write函数的输出并将其存储在变量中以进行进一步处理。天真的解决方案是: # module mymodule.py from writer import write out = write() print out.upper() 但这是行不通的。我想出了另一个解决方案,它可以工作,但是请告诉我是否有解决问题的更好方法。谢谢 import sys from cStringIO import StringIO # setup the environment backup = sys.stdout # #### sys.stdout = StringIO() # capture output write() out = sys.stdout.getvalue() # release …
89 python  stdout  sys 
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.