Python 操作系统输出太多?

Python 操作系统输出太多?,python,system,Python,System,我正在尝试这样做,以获取剪贴板的内容 clipboard_data = os.system("pbpaste") 但这不管用!它不仅不在var中存储剪贴板中的内容(一些文本)(返回0),而且在屏幕上输出命令的结果 如何使它按我所希望的方式工作?您应该了解for Python中提供了什么。在版本2.7及更高版本中,您可以通过以下功能实现所需功能,例如: from subprocess import check_output clipboard_data = check_output(["pbpa

我正在尝试这样做,以获取剪贴板的内容

clipboard_data = os.system("pbpaste")
但这不管用!它不仅不在var中存储剪贴板中的内容(一些文本)(返回0),而且在屏幕上输出命令的结果


如何使它按我所希望的方式工作?

您应该了解for 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]

这缺少了一些错误检查,但是您得到了一个想法…

您应该研究一下for 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]

这缺少了一些错误检查,但您知道了…

无论您试图实现什么(我不熟悉
pbpaste
和IMHO),操作系统都返回它调用的进程的退出状态,而不是它的标准输出


您应该使用
subprocess.Popen
(及其
communicate
方法)来获得标准输出。

无论您试图实现什么(我不熟悉
pbpaste
和IMHO),操作系统都返回它正在调用的进程的退出状态,而不是它的标准输出


您应该使用
subprocess.Popen
(及其
communicate
方法)来获得标准输出。

一个简单的方法是使用

f = os.popen(command)

方法,它返回一个类似文件的对象,然后可以使用方法f.readline()返回字符串。不过,该方法非常简单,不应用于处理大量数据,因为它使用了大量计算机cpu电源。

一个简单的方法是使用

f = os.popen(command)

方法,它返回一个类似文件的对象,然后可以使用方法f.readline()返回字符串。不过,该方法非常简单,不应用于处理大量数据,因为它占用了大量计算机的cpu资源。

。我不能使用win32clipboard,我正在Mac上开发。我试过@mark longair的代码使用Popen(我在Python 2.6上),但我得到一个错误,告诉我“PIPE”没有定义。我试过@mark longair的代码使用Popen(我在Python 2.6上),但我得到一个错误,告诉我“PIPE”没有定义。@留胡子的家伙:我用适当的导入更新了这个答案,使之生效,谢谢。我不能使用win32clipboard,我正在Mac上开发。我尝试使用Popen编写@mark longair的代码(我使用的是Python2.6),但有一个错误告诉我“PIPE”没有定义。我尝试使用Popen编写@mark longair的代码(我使用的是Python2.6),但有一个错误告诉我“PIPE”未定义。@留胡子的家伙:我用适当的导入更新了答案以使其工作。我尝试了使用Popen(我在Python 2.6上)的代码,但我收到一个错误,告诉我“管道”未定义。@留胡子的家伙:我刚刚用适当的导入语句更新了答案:)我用Popen尝试了代码(我使用的是Python 2.6),但我收到一个错误,告诉我没有定义“管道”。@留胡子的家伙:我刚刚用一个适当的导入语句更新了答案:)