小编shi*_*eta的帖子

Python:从urllib2.urlopen调用获取HTTP头?

是否urllib2urlopen拨打电话时获取整个页面?

我想在不获取页面的情况下读取HTTP响应头.它看起来像urllib2打开HTTP连接,然后获取实际的HTML页面......或者它是否只是通过urlopen调用开始缓冲页面?

import urllib2
myurl = 'http://www.kidsidebyside.org/2009/05/come-and-draw-the-circle-of-unity-with-us/'
page = urllib2.urlopen(myurl) // open connection, get headers

html = page.readlines()  // stream page
Run Code Online (Sandbox Code Playgroud)

python forwarding urllib

47
推荐指数
5
解决办法
10万
查看次数

Python字典哈希查找如何工作?

Python字典查找算法如何在内部工作?

mydi['foo'] 
Run Code Online (Sandbox Code Playgroud)

如果字典有1,000,000个术语,是否执行了树搜索?我是否期望在关键字符串的长度或字典的大小方面表现?也许将所有内容都填入字典中就像为500万字符串的字符串编写树搜索索引一样好?

python algorithm dictionary

23
推荐指数
3
解决办法
1万
查看次数

为什么Perl认为-1是真的?

这是一段常见的示例代码:

while (1) { 
    print "foo\n"; 
}
Run Code Online (Sandbox Code Playgroud)

永远打印'foo'.

perl foo.pl
foo
foo
foo
...
Run Code Online (Sandbox Code Playgroud)

while (0) { print "foo\n"; } 
Run Code Online (Sandbox Code Playgroud)

像你期望的那样安静地死去:

perl test.pl
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么这是一个有用的实现吗?这至少适用于5.10,Unix和MacOS X:

while (-1) { print "foo\n"; }
Run Code Online (Sandbox Code Playgroud)

这使

foo
foo
foo
...
Run Code Online (Sandbox Code Playgroud)

perl boolean

12
推荐指数
4
解决办法
796
查看次数

版本控制如何工作?

版本控制通常如何工作?它是否将差异文件保存为带有哈希的跟踪来验证路径?

version-control

11
推荐指数
2
解决办法
5554
查看次数

我可以在交互模式下访问python中的sys.argv吗?

我想做点什么:

% python foo bar
import sys
sys.argv
Run Code Online (Sandbox Code Playgroud)

要得到:

%  ['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)

但是当你输入一个不是脚本的参数或者你进入非交互模式时,python会死掉.

我能以某种方式这样做吗?

python argv read-eval-print-loop

6
推荐指数
2
解决办法
288
查看次数

使用带有嵌套查询的python MySQLDB SScursor

当生成大型结果集时,典型的MySQLdb库查询可能会占用大量内存并在Python中表现不佳.例如:

cursor.execute("SELECT id, name FROM `table`")
for i in xrange(cursor.rowcount):
    id, name = cursor.fetchone()
    print id, name
Run Code Online (Sandbox Code Playgroud)

有一个可选的游标,一次只能获取一行,真正加快了脚本的速度,并大大减少了脚本的内存占用.

import MySQLdb
import MySQLdb.cursors

conn = MySQLdb.connect(user="user", passwd="password", db="dbname", 
                       cursorclass = MySQLdb.cursors.SSCursor)
cur = conn.cursor()
cur.execute("SELECT id, name FROM users")
row = cur.fetchone()
while row is not None:
    doSomething()
    row = cur.fetchone()    
cur.close()
conn.close()
Run Code Online (Sandbox Code Playgroud)

但我找不到SSCursor与嵌套查询一起使用的任何内容.如果这是定义doSomething():

def doSomething()
    cur2 = conn.cursor()
    cur2.execute('select id,x,y from table2')
    rows = cur2.fetchall()
    for row in rows:
        doSomethingElse(row)
    cur2.close()
Run Code Online (Sandbox Code Playgroud)

然后脚本抛出以下错误:

_mysql_exceptions.ProgrammingError: (2014, "Commands out …
Run Code Online (Sandbox Code Playgroud)

python mysql-python

6
推荐指数
1
解决办法
2406
查看次数

Amazon VPC 中可以使用多少个 EC2 实例?

Amazon 的 Virtual Private Cloud (Amazon VPC)允许我打开与 EC2 集群的 VPN 连接。

看起来您可以在虚拟私有云中运行的 EC2 实例数量是 24 个主机 - 这是正确的吗?

amazon-ec2 vpc amazon-vpc

5
推荐指数
1
解决办法
1万
查看次数

python对象是单例函数吗?

在Java中,对象使用链接到它们的类的函数的完整副本进行实例化.这是Spring Framework如此成功的原因之一.Spring可以帮助您减少Java VM在创建许多临时数据对象时使用的内存,以及Spring提供的其他服务对象作为有效承载所有功能的单例.

我只是想知道在Python中这是真的吗?好像不是.但这意味着如果你弄乱了一个对象的dict,那么你正在改变该类的所有副本的所有功能,对吗?

例如:

class MyObj:
  a = 23

  def __init__(self, b):
     self.b = b

  def __add__(self, c):
     return self.b + c
Run Code Online (Sandbox Code Playgroud)

如果我创建一个数组MyObj,是否有一个实例,__add__每个实例,或只有一个实例?

python

4
推荐指数
1
解决办法
253
查看次数

log4perl如何同时写入STDERR和文件?

我试图设置两个appender,但似乎只写STDERR:

my $header = "######$scriptname $version";
use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init($DEBUG);
my $logger = get_logger();
my $layout = Log::Log4perl::Layout::PatternLayout->new(
"%d %p> %F{1}:%L %M - %m%n");
my $appender = Log::Log4perl::Appender->new(
        "Log::Dispatch::File",
        filename=>$scriptname.".log",
        mode => "append"
);
$appender->layout($layout);
my $stderr = Log::Log4perl::Appender::Screen->new(
        stderr =>0,
        );

$stderr->layout($layout);
$logger->info($header);
Run Code Online (Sandbox Code Playgroud)

perl log4perl

3
推荐指数
1
解决办法
2280
查看次数