Tag: python

Python中的循环导入依赖

假设我有以下目录结构: a\ __init__.py b\ __init__.py c\ __init__.py c_file.py d\ __init__.py d_file.py 在a包的__init__.py , c包被导入。 但是c_file.py导入abd 。 程序失败,当c_file.py尝试导入abd时,说b不存在。 (而且它确实不存在,因为我们正在导入它。) 这个问题怎么解决?

如何在Google App Engine中包含第三方Python库?

如何在Google App Engine中添加Google提供的第三方Python库? 我正尝试在Google App Engine中使用BeautifulSoup,但无法这样做。 但我的问题是我想要在Google App Engine中使用的任何库。

在Python中,如何分割一个string并保留分隔符?

这是解释这个最简单的方法。 以下是我正在使用的: re.split('\W', 'foo/bar spam\neggs') -> ['foo', 'bar', 'spam', 'eggs'] 这是我想要的: someMethod('\W', 'foo/bar spam\neggs') -> ['foo', '/', 'bar', ' ', 'spam', '\n', 'eggs'] 原因是我想把一个string拆分成令牌,操作它,然后再把它放回去。

Python检查有效的电子邮件地址?

有一个好的方法来检查表单input使用正则expression式,以确保它是一个适当的样式电子邮件地址? 从昨天开始search,每个回答了人们关于这个话题的问题,如果它是一个子地址的电子邮件地址,似乎也有问题。

从符合条件的迭代中获取第一个项目

我想从匹配条件的列表中获得第一个项目。 所产生的方法不能处理整个列表是非常重要的,这个列表可能非常大。 例如,以下function就足够了: def first(the_iterable, condition = lambda x: True): for i in the_iterable: if condition(i): return i 这个函数可以这样使用: >>> first(range(10)) 0 >>> first(range(10), lambda i: i > 3) 4 但是,我想不出一个好的内置/单线程来让我这样做。 我不特别想复制这个function,如果我不需要。 有没有一种内置的方式来获得匹配条件的第一个项目?

用python作为循环的范围

我不是在问Python的范围规则, 我通常理解Python的循环范围是如何工作的。 我的问题是为什么devise决定是这样做的。 例如(没有双关语意): for foo in xrange(10): bar = 2 print(foo, bar) 以上将打印(9,2)。 这让我感到奇怪:'foo'实际上只是控制循环,'bar'是在循环内部定义的。 我可以理解为什么可能有必要在循环之外访问“bar”(否则,for循环将具有非常有限的function)。 我不明白的是,为什么在循环结束之后,控制variables需要保持在范围之内。 根据我的经验,它只是混淆了全局名称空间,并且使得更难追查可能被其他语言的解释器捕获的错误。

Python的列表是如何实现的?

它是一个链表,一个数组? 我四处搜寻,只发现有人猜测。 我的C知识不足以查看源代码。

在文件之间使用全局variables?

我对全局variables如何工作有点困惑。 我有一个大项目,大约有50个文件,我需要为所有这些文件定义全局variables。 我所做的是在我的项目main.py文件中定义它们,如下所示: # ../myproject/main.py # Define global myList global myList myList = [] # Imports import subfile # Do something subfile.stuff() print(myList[0]) 我试图在myList中使用subfile.py ,如下所示 # ../myproject/subfile.py # Save "hey" into myList def stuff(): globals()["myList"].append("hey") 我尝试了另一种方式,但也没有奏效 # ../myproject/main.py # Import globfile import globfile # Save myList into globfile globfile.myList = [] # Import subfile import […]

在Python中释放内存

在下面的例子中,我有一些关于内存使用情况的相关问题。 如果我在翻译中跑步, foo = ['bar' for _ in xrange(10000000)] 我的机器上使用的真实内存高达80.9mb 。 那我呢, del foo 真实记忆下降,但只有30.4mb 。 解释器使用了4.4mb基线,因此在向操作系统释放26mb的内存方面有什么优势? 是因为Python“提前计划”,认为你可能再次使用那么多的内存? 为什么它特别释放50.5mb – 基于什么数量释放? 有没有办法强制Python释放所有使用的内存(如果你知道你不会再使用那么多的内存)?

代理与urllib2

我打开url: site = urllib2.urlopen('http://google.com') 而我想要做的就是用一个代理连接相同的方式我有一个地方告诉我: site = urllib2.urlopen('http://google.com', proxies={'http':'127.0.0.1'}) 但是这也不起作用。 我知道urllib2有一个像代理处理程序的东西,但我不记得那个function。