我已经从论坛中提取了一些信息.这是我现在拥有的原始字符串:
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)
我怎么能这样做?实际上我用美丽的汤从论坛中提取上面的字符串.现在我可能更喜欢正则表达式来删除该部分.
我有一个从数据库中获取的行ID列表.我正在使用python和psycopg2,我的问题是如何有效地将这些ID传递给SQL?我的意思是,如果我知道该列表的长度,这很容易,因为我总是可以根据需要手动或自动将多少"%s"表达式添加到查询字符串中,但在这里我不知道我需要多少它们.重要的是我需要使用sql"id IN(id1,id2,...)"语句选择行.我知道可以检查列表的长度并将合适数量的"%s"连接到查询字符串中,但我担心它会非常缓慢和丑陋.有没有人知道如何解决它?请不要问为什么我需要用"IN"语句来做 - 这是一个基准测试,是我课堂作业的一部分.提前致谢!
所以我试图在我的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中.
我刚开始学习网络服务器,特别是龙卷风.
我想写一个带登录功能的简单网页.如Tornado文档中所述,我在用户成功插入后创建了一个安全的cookie:
self.set_secure_cookie("user", self.get_argument("user"))
Run Code Online (Sandbox Code Playgroud)
但是,如何为用户提供注销方式?如前所述,我不熟悉Web服务器,但是当我在用户尝试进入主页时检查此cookie时,我想我只需要在用户按下"注销"后将其删除?
不幸的是,我无法在龙卷风文件中找到任何关于此的信息,也无法在SO上找到.
我希望能够通过脚本的返回值来定义变量.这就是我目前拥有的:
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).我如何运行此脚本并捕获返回值以存储为变量?
我很难找到适合Mechanize文档的全面资源.即使是关于mechanize网站的主要文档也不是那么好:它似乎只列出了例子.
是否有更正式的文档位置,我可以看到此模块的类和方法列表?我对python有点新意,所以也许有一个简单的答案.
更具体地说,我需要一个很好的信息来源mechanize.Browser()
,我只能通过Stack Overflow上的随机问题找到相关信息.
我正在尝试运行一个命令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中的无头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无法循环?
有时使用ipython时,您可能会在以写入模式打开文件的函数中遇到异常.这意味着下次运行该函数时会出现值错误,
ValueError:文件'filename'已经打开.请在写入模式下重新打开之前关闭它.
但是,由于函数被淘汰,文件句柄(在函数内部创建)将丢失,因此无法关闭.绕过它的唯一方法似乎是关闭ipython会话,此时你会收到消息:
关闭剩余的打开文件:filename ... done
有没有办法指示ipython关闭文件而不退出会话?
我有一个脚本,如果它运行,每次输出大约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/password
在if
/ elif
条件?
python ×9
amazon-ec2 ×1
bash ×1
cookies ×1
filehandle ×1
ipython ×1
linux ×1
matplotlib ×1
mechanize ×1
paramiko ×1
postgresql ×1
psycopg2 ×1
pygtk ×1
pyqt4 ×1
regex ×1
string ×1
subprocess ×1
tornado ×1
virtualenv ×1
x11 ×1
xvfb ×1