小编Ste*_*oss的帖子

如何从Python请求调用中提取HTTP响应主体?

我正在使用Python请求库.我试图找出如何从响应中提取实际的HTML正文.代码看起来有点像这样:

r = requests.get(...)
print r.content
Run Code Online (Sandbox Code Playgroud)

这应该打印很多内容,但不打印任何内容.

有什么建议?也许我误解了requests.get()是如何工作的?

http-request python-requests

40
推荐指数
3
解决办法
8万
查看次数

如何使用Selenium Webdriver在浏览器中单击<input type = file>?

我正在使用Selenium 2 - WebDriver处理文件选择器对话框.信不信由你,我的问题不是处理操作系统原生的文件选择器.那部分我可以处理!

问题是让Selenium正确点击"选择文件"按钮.由于原始源html很简单<input type='file'>,浏览器确定如何将其呈现为字段和按钮.因此,按钮的放置和命名会根据浏览器而改变.我已经在Chrome中使用它,但仅仅是因为Chrome将按钮放在最左边的路线上,而Selenium恰好在默认情况下点击那里.

有任何想法吗?我不清楚这种类型的输入是否真的可以从DOM中导航......

selenium webdriver

27
推荐指数
2
解决办法
4万
查看次数

为什么匿名类不能有lambda属性,但它可以有一个Func <>属性?

我正在尝试学习C#对匿名类型的限制.请考虑以下代码:

  var myAwesomeObject = new {
      fn1 = new Func<int>(() => { return 5; }),
      fn2 = () => { return 5; } 
  };
Run Code Online (Sandbox Code Playgroud)

所以我们有两个实际上是函数的属性:

  • fn1:A Func<int>返回5.
  • fn2:返回的lambda函数5.

C#编译器很乐意使用fn1,但抱怨fn2:

无法将lambda表达式赋给匿名类型属性.

有人可以解释为什么一个是好的但另一个不是吗?

c#

19
推荐指数
1
解决办法
3904
查看次数

制作python/tkinter标签小部件更新?

我正在努力获取python/tkinter标签小部件来更新其内容.根据今天的早期主题,我按照如何组合小部件的说明进行操作.但是,在运行时,标签小部件不会更改内容,而只是保留其原始内容.据我所知,从来没有调用decrement_widget().有任何想法吗?

def snooze (secs):
  """
  Snoozes for the given number of seconds. During the snooze, a progress
  dialog is launched notifying the 
  """

  root = Tkinter.Tk()
  prompt = 'hello'
  label1 = Tkinter.Label(root, text=prompt, width=len(prompt))
  label1.pack()

  remaining = secs

  def decrement_label ():
    text = "Snoozing %d sec(s)" % remaining
    remaining -= 1
    label1.config(text=text, width=100)
    label1.update_idletasks()

  for i in range(1, secs + 1):
    root.after(i * 1000, decrement_label )

  root.after((i+1) * 1000, lambda : root.destroy())
  root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python tkinter

18
推荐指数
2
解决办法
8万
查看次数

在树结构的Big-O表示法中:为什么有些源引用O(logN)而有些源引用O(h)?

在研究遍历二叉搜索树的任何算法的复杂性时,我看到两种表达同一事物的不同方式:

版本#1:最坏情况下的遍历算法比较树的每个高度一次; 因此复杂性是O(h).

版本#2:最坏情况下的遍历算法比较树的每个高度一次; 因此复杂性是O(logN).

在我看来,相同的逻辑在起作用,但不同的作者使用其中任何一个logNh.有人可以向我解释为什么会这样吗?

algorithm tree big-o binary-search-tree data-structures

12
推荐指数
2
解决办法
9640
查看次数

如何在Python中找到导入函数的位置?

我有一个带有函数的Python模块:

  == bar.py ==
  def foo(): pass
  == EOF ==
Run Code Online (Sandbox Code Playgroud)

然后我将它导入全局命名空间,如下所示:

from bar import *
Run Code Online (Sandbox Code Playgroud)

所以现在foo我可以使用该功能.如果我打印它:

print foo
Run Code Online (Sandbox Code Playgroud)

口译员高兴地告诉我:

 <function foo at 0xb7eef10c>
Run Code Online (Sandbox Code Playgroud)

有没有办法让我发现这个功能foo来自模块bar

python module

11
推荐指数
1
解决办法
3000
查看次数

如何在shell脚本中保留$ @中的双引号?

假设我有一个非常简单的shell脚本'foo':

  #!/bin/sh
  echo $@
Run Code Online (Sandbox Code Playgroud)

如果我像这样调用它:

  foo 1 2 3
Run Code Online (Sandbox Code Playgroud)

它愉快地打印:

  1 2 3
Run Code Online (Sandbox Code Playgroud)

但是,假设我的一个参数是双引号括起来并包含空格:

  foo 1 "this arg has whitespace" 3
Run Code Online (Sandbox Code Playgroud)

foo愉快地打印:

  1 this arg has whitespace 3
Run Code Online (Sandbox Code Playgroud)

双引号被剥夺了!我知道shell认为它帮我一个忙,但是...我想得到原始版本的论点,不受shell解释的影响.有没有办法这样做?

shell

11
推荐指数
4
解决办法
6846
查看次数

如何在Perl模块中编写函数引用?

我正在试图弄清楚如何为Perl模块进行函数引用.我知道如何在模块外部进行,但在一个模块内部?考虑这样的代码:

==mymodule.pm==
1 sub foo { my $self = shift; ... }
2 sub bar { my $self = shift; ... }
3 sub zip {
4   my $self = shift;
5   my $ref = \&foo;
6   $self->&$foo(); # what syntax is appropriate?
7 }
==eof===
Run Code Online (Sandbox Code Playgroud)

看看上面的第5-6行.(1)首先定义函数引用,以及(2)解引用它的正确语法是什么?

perl

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

Selenium WebDriver Click()因IE9而失败

(我已经在SO上查看了很多其他类似的帖子,遗憾的是无法解决这个问题,所以这里......)

我正在使用Selenium WebDriver(C#实现,版本2.15)来驱动一个相当简单的网页.该页面包含一个表单,其中包含两个用于用户名和密码的<input>,以及一个用于提交表单的<input>.我可以成功输入用户名和密码的值,但是提交按钮上的Click()调用似乎没有效果.

根据其他建议,我尝试了以下技巧,其中没有一个有效:

  • 将窗口焦点更改为currentWindowHandle
  • 单击元素的父元素,然后单击元素
  • 添加一个长隐式等待
  • 添加一个长时间的显式等待(睡20秒)
  • 在元素上单击一大堆
  • 使用Submit()而不是Click()
  • 将密钥"\n"发送到元素(Selenium将此报告为错误)

请注意,我已经验证确实已成功找到<input>按钮,因此这似乎不是问题.

此外,请注意我已经验证按钮确实在Selenium-land之外工作.也就是说,我可以浏览到该站点,输入登录凭据,然后单击"提交"按钮(它可以工作!).

另请注意,此问题出在IE上.Chrome和FF7不适用于我.

所以说,有没有人有任何其他想法?

selenium

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

用Python锁定sqlite3数据库(重新要求澄清)

几个星期前,我在SO上发布了关于如何在python中锁定sqlite3数据库的问题:

如何在Python中锁定sqlite3数据库?

但是,我不太相信答案是有效的.或者,也许我只是误解了答案.

这是我遇到的情况:

  • 我有一个数据库"测试"
  • 在数据库"test"中有一个表"book"
  • 表"book"中有两列:"title"和"checked_out_by"

然后我有一个功能如下:

def checkout(title, user):
    con = get_connection_from_db()
    with con:
        checked_out_by = get_checked_out_by(title)
        if checked_out_by == '': # If NOT checked out:
            checkout(title, user)
            print user, "checked out", title
        elif checked_out_by == 'user':
            print user, "already got it"
        else:
            print user, "can't check it out because", checked_out_by, "has it!"
Run Code Online (Sandbox Code Playgroud)

因此checkout()函数首先验证书籍是否未签出,如果是,则签出书籍.请注意,我正在使用推荐的"with con:"技巧来确保所有内容都是事务性的,快乐的和copacetic.

但是,我运行了一堆并发测试并发现了问题.具体来说,当我同时运行以下两个调用时:

checkout('foo', 'steve')
checkout('foo', 'tim')
Run Code Online (Sandbox Code Playgroud)

输出表明它不能正常工作.我希望看到以下两个可能的输出中的一个:

steve checked out foo
tim can't check it out because steve has it!
Run Code Online (Sandbox Code Playgroud)

要么:

tim checked out …
Run Code Online (Sandbox Code Playgroud)

sqlite

8
推荐指数
2
解决办法
5666
查看次数