我正在尝试这样做,以获取剪贴板的内容
clipboard_data = os.system("pbpaste")
但这不起作用!它不仅不存储var中的任何内容(某些文本)(返回0),而且还在屏幕上输出命令的结果。
如何让它按我想要的方式工作?
答案 0 :(得分:4)
您应该查看subprocess
module中为Python提供的内容。在2.7及更高版本中,您可以使用以下内容实现所需,例如:
from subprocess import check_output
clipboard_data = check_output(["pbpaste"])
...或在早期版本中执行:
from subprocess import Popen, PIPE
clipboard_data = Popen(["pbpaste"], stdout=PIPE).communicate()[0]
缺少一些错误检查,但你明白了......
答案 1 :(得分:1)
无论你想要实现什么(我不熟悉pbpaste
和恕我直言,有better ways to access the clipboard),os.system
返回它正在调用的进程的退出状态,不是它的标准输出。
您应该使用subprocess.Popen
(及其communicate
方法)来获取标准输出。
答案 2 :(得分:-1)
一种简单的方法是使用
f = os.popen(command)
方法,它返回一个像object这样的文件,然后你可以使用f.readline()方法返回一个字符串。该方法非常简单,不应该用于处理大量数据,因为它使用了大量的计算机CPU功率。