去掉Python字符串末尾的0
#!/usr/bin/env python
import os, sys, subprocess, time
while True:
print subprocess.call("xsel", shell=True);
time.sleep(1);
这个程序每秒从剪贴板获取一条内容并打印出来。
结果:
copied0
entry0
from0
clipboard0
我不知道为什么它最后会返回0,但这似乎让我无法使用字符串的去空格功能(整数是没有去空格的),所以这个0让字符串变成了整数?
怎么才能把上面结果中的字符串最后的0去掉呢?
我之前是用BASH写脚本,现在想转到Python。
6 个回答
2
看起来它在运行“xsel”,这个程序会把结果打印到标准输出(stdout),然后再把返回代码(0)打印到标准输出。你并没有从Python中获取到剪贴板的结果。
你可能需要使用subprocess.popen,并且要捕获标准输出。
4
编辑: subprocess.call
返回的不是字符串,而是一个整数——你看到的那个 0
(在 xsel 实际输出之后)。可以改用:
print subprocess.Popen('xsel', stdout=subprocess.PIPE).communicate()[0]
4
正如Mark所说,subprocess.call()
并不能满足你的需求。
你可以试试下面这样的写法:
#!/usr/bin/env python
import os, sys, subprocess, time
while True:
p=subprocess.Popen(["xsel"],stdout=subprocess.PIPE)
print p.stdout.read()
time.sleep(1)