小编jco*_*ado的帖子

使用Python删除子字符串

我已经从论坛中提取了一些信息.这是我现在拥有的原始字符串:

string = 'i think mabe 124 + <font color="black"><font face="Times New Roman">but I don\'t have a big experience it just how I see it in my eyes <font color="green"><font face="Arial">fun stuff'
Run Code Online (Sandbox Code Playgroud)

我不喜欢的是子字符串"<font color="black"><font face="Times New Roman">""<font color="green"><font face="Arial">".我确实想保留字符串的其他部分,除此之外.所以结果应该是这样的

resultString = "i think mabe 124 + but I don't have a big experience it just how I see it in my eyes fun stuff"
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?实际上我用美丽的汤从论坛中提取上面的字符串.现在我可能更喜欢正则表达式来删除该部分.

python regex string

53
推荐指数
2
解决办法
9万
查看次数

在psycopg2中将参数列表传递给SQL

我有一个从数据库中获取的行ID列表.我正在使用python和psycopg2,我的问题是如何有效地将这些ID传递给SQL?我的意思是,如果我知道该列表的长度,这很容易,因为我总是可以根据需要手动或自动将多少"%s"表达式添加到查询字符串中,但在这里我不知道我需要多少它们.重要的是我需要使用sql"id IN(id1,id2,...)"语句选择行.我知道可以检查列表的长度并将合适数量的"%s"连接到查询字符串中,但我担心它会非常缓慢和丑陋.有没有人知道如何解决它?请不要问为什么我需要用"IN"语句来做 - 这是一个基准测试,是我课堂作业的一部分.提前致谢!

python postgresql psycopg2

41
推荐指数
3
解决办法
2万
查看次数

在virtualenv中安装PyGtk

所以我试图在我的virtualenv(在控制台中)运行一个简单的matplotlib示例.这是代码:

import matplotlib
matplotlib.use('GTKAgg')
import matplotlib.pyplot as plt
radius = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
area = [3.14159, 12.56636, 28.27431, 50.26544, 78.53975, 113.09724]
plt.plot(radius, area)
plt.show()
Run Code Online (Sandbox Code Playgroud)

但是,当我运行这个时,我得到:

ImportError:Gtk*后端需要安装pygtk.

现在,乐趣开始了.我试图pip安装pygtk但它抛出:

********************************************************************
* Building PyGTK using distutils is only supported on windows. *
* To build PyGTK in a supported way, read the INSTALL file.    *
********************************************************************
Complete output from command python setup.py egg_info:
********************************************************************
Run Code Online (Sandbox Code Playgroud)

我检查了INSTALL文件并说要试试./configfure; make; make install.然而.我不太确定如何在virtualenv中做到这一点.我在哪里解压缩pygtk的源代码以便安装在virtualenv中.

python pygtk matplotlib virtualenv

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

删除龙卷风中的安全Cookie

我刚开始学习网络服务器,特别是龙卷风.

我想写一个带登录功能的简单网页.如Tornado文档中所述,我在用户成功插入后创建了一个安全的cookie:

self.set_secure_cookie("user", self.get_argument("user"))
Run Code Online (Sandbox Code Playgroud)

但是,如何为用户提供注销方式?如前所述,我不熟悉Web服务器,但是当我在用户尝试进入主页时检查此cookie时,我想我只需要在用户按下"注销"后将其删除?

不幸的是,我无法在龙卷风文件中找到任何关于此的信息,也无法在SO上找到.

python cookies tornado

17
推荐指数
1
解决办法
6322
查看次数

使用子进程获取返回值

我希望能够通过脚本的返回值来定义变量.这就是我目前拥有的:

sum_total_earnings_usd = subprocess.call([SCRIPT, "-d", date])
Run Code Online (Sandbox Code Playgroud)

我已经检查了SCRIPT的返回值,但是,当我尝试设置此变量时,它总是返回0(http://docs.python.org/library/subprocess.html#subprocess.call).我如何运行此脚本并捕获返回值以存储为变量?

python subprocess

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

需要更多机械化文档(python)

我很难找到适合Mechanize文档的全面资源.即使是关于mechanize网站的主要文档也不是那么好:它似乎只列出了例子.

是否有更正式的文档位置,我可以看到此模块的类和方法列表?我对python有点新意,所以也许有一个简单的答案.

更具体地说,我需要一个很好的信息来源mechanize.Browser(),我只能通过Stack Overflow上的随机问题找到相关信息.

python mechanize

15
推荐指数
2
解决办法
7133
查看次数

x11使用paramiko转发

我正在尝试运行一个命令paramiko,应该能够打开一个X窗口.我正在使用的脚本如下:

import paramiko                                    

ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect('192.168.122.55', username='user', password='password')
transport = ssh_client.get_transport()
session = transport.open_session()

session.request_x11()
stdin = session.makefile('wb')
stdout = session.makefile('rb')
stderr = session.makefile_stderr('rb')
session.exec_command('env; xterm')
transport.accept()

print 'Exit status:', session.recv_exit_status()
print 'stdout:\n{}'.format(stdout.read())
print 'stderr:\n{}'.format(stderr.read())
session.close()
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我运行上面的脚本时,我得到了这个输出:

Exit status: 1
stdout:
SHELL=/bin/bash
XDG_SESSION_COOKIE=8025e1ba5e6c47be0d2f3ad6504a25ee-1347286654.617967-1932974971
SSH_CLIENT=192.168.122.1 58654 22
USER=user
MAIL=/var/mail/user
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PWD=/home/user
LANG=en_US.UTF-8
SHLVL=1
HOME=/home/user
LOGNAME=user
SSH_CONNECTION=192.168.122.1 58654 192.168.122.55 22
DISPLAY=localhost:10.0
_=/usr/bin/env

stderr:  
xterm: Xt error: Can't open display: localhost:10.0
Run Code Online (Sandbox Code Playgroud)

如果我在终端中运行以下命令:

ssh -X user@192.168.122.55 'env; xterm'
Run Code Online (Sandbox Code Playgroud)

然后我得到相同的环境变量(虽然有些端口发生了变化),所以我说我的环境是正确的.但是,我仍然缺少一些可以paramiko …

python x11 paramiko x11-forwarding

15
推荐指数
2
解决办法
5806
查看次数

xvfb在ubuntu 11.04中运行错误

我的任务是使用python中的无头webkit(PyQt4.QtWebkit)抓取谷歌搜索结果.该模块正在使用PyQt4抓取结果.我应该在amazon ec2中执行此脚本.所以,我应该使用Xvfb(在ec2中没有x服务器).

同时我的模块必须在循环中执行.所以,它适用于一些迭代.在一些循环模块运行到"xvfb-run:错误:Xvfb无法启动"之后

怎么解决?

这是我的循环:

for i in range(10):
    try:
        query_dict["start"] = i * 10
        url = base_url + ue(query_dict)
        flag = True
        while flag:
            parsed_dict = main(url)
            time.sleep(8.4)
            flag = False
    except:
        pass
Run Code Online (Sandbox Code Playgroud)

main(网址):

def main(url):
    cmd = "xvfb-run python /home/shan/temp/hg_intcen/lib/webpage_scrapper.py"+" "+str(url)
    print "Cmd EXE:"+ cmd
    proc = subprocess.Popen(cmd,shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE)
    proc.wait()
    sys.stdout.flush()
    result = proc.stdout.readlines()
    print "crawled: ",result[1]
    return result
Run Code Online (Sandbox Code Playgroud)

webpage_scrapper将使用pyqt4获取所有html结果.如何避免xvfb无法循环?

python amazon-ec2 pyqt4 xvfb

13
推荐指数
2
解决办法
8128
查看次数

关闭ipython中的所有打开文件

有时使用ipython时,您可能会在以写入模式打开文件的函数中遇到异常.这意味着下次运行该函数时会出现值错误,

ValueError:文件'filename'已经打开.请在写入模式下重新打开之前关闭它.

但是,由于函数被淘汰,文件句柄(在函数内部创建)将丢失,因此无法关闭.绕过它的唯一方法似乎是关闭ipython会话,此时你会收到消息:

关闭剩余的打开文件:filename ... done

有没有办法指示ipython关闭文件而不退出会话?

python filehandle ipython

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

可以输入if语句吗?

我有一个脚本,如果它运行,每次输出大约10行.这些行的内容各不相同.

我真的希望能够grep在输出中根据输出做不同的事情.

在伪这是我想做的

cat /etc/password | \\
if [ grep "root" $STDOUT ]; then
   echo "root is found"

elif [ grep "nobody" $STDOUT ]; then
   echo "nobody is found"

fi
Run Code Online (Sandbox Code Playgroud)

我在这里cat /etc/password作为一个例子,但应该用我上面提到的脚本替换它.

问题是,我怎么输出保持从cat /etc/passwordif/ elif条件?

linux bash

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