有没有办法把剪贴板的内容转换成运行 in Python的列表?
Is there a way to convert the clipboard content into list in the run in Python?
我想在 Python 中附加两个列表 ("a"&"b"),我在 python 中编码了列表 "b",但是列表 "a" 来自剪贴板(总是不同)。
例如
a = ["car", "plane", "truck", "motorcycle", "jet", "train"] # this list come from clipboard, always change
Clipboard = ["car", "plane", "truck", "motorcycle", "jet", "train"]
b = ["plane", "jet"] # this list is always the same
有没有办法将剪贴板内容转换成 运行 中的列表 "a"(交互式)???
感谢高级。
您是想简单地读取剪贴板并拆分内容吗?
在 linux 上:
import pyperclip
print pyperclip.paste().split(" ")
Windows:
from Tkinter import Tk
root = Tk()
print Tk.clipboard_get(root).split(" ")
OS X:
from AppKit import *
pb = NSPasteboard.generalPasteboard()
pbstring = pb.stringForType_(NSStringPboardType)
print pbstring.split(" ")
[编辑]
看起来 pyperclip
也应该在 windows 和 OS X 下工作,因此这似乎是一个可移植的解决方案。参考:https://pypi.python.org/pypi/pyperclip/
从您的评论中可以看出,您实际上并不是在询问如何读取剪贴板的内容;你只是问如何解析恰好来自剪贴板的一些数据(大概是 you/the 用户手动粘贴的)。
所以真正的问题是:如何从 Python 源解析看起来有点像列表文字的东西?
如果它实际上 是 来自 Python 源的列表文字,则使用 ast
模块中的 literal_eval
函数:
>>> import ast
>>> s = "['a',2, (4,'b')]"
>>> lst = ast.literal_eval(s)
>>> print(lst)
['a', 2, (4, 'b')]
但是,如果您实际上不知道数据的来源,那么它很可能实际上是 JSON(您应该使用 json.loads
进行解析)、YAML 或其他格式这在表面上类似于 Python 文字但不完全相同。如果您尝试用 literal_eval
解析 JSON,它将在您的初始测试中起作用,然后在现实生活中由于 false
而不是 False
或类似的原因而失败。这就是为什么真正了解您拥有的数据类型很重要。如果它来自 Python 源代码,或者来自某些 Python 脚本调用 print
和列表,那就是 literal_eval
的目的。
尝试 Pandas read_clipboard:
import pandas
pandas.read_clipboard(header=None)
这应该 return 你是一个 DataFrame。请参阅 pandas.read_table().
文档中有关参数的信息
我想在 Python 中附加两个列表 ("a"&"b"),我在 python 中编码了列表 "b",但是列表 "a" 来自剪贴板(总是不同)。
例如
a = ["car", "plane", "truck", "motorcycle", "jet", "train"] # this list come from clipboard, always change
Clipboard = ["car", "plane", "truck", "motorcycle", "jet", "train"]
b = ["plane", "jet"] # this list is always the same
有没有办法将剪贴板内容转换成 运行 中的列表 "a"(交互式)???
感谢高级。
您是想简单地读取剪贴板并拆分内容吗? 在 linux 上:
import pyperclip
print pyperclip.paste().split(" ")
Windows:
from Tkinter import Tk
root = Tk()
print Tk.clipboard_get(root).split(" ")
OS X:
from AppKit import *
pb = NSPasteboard.generalPasteboard()
pbstring = pb.stringForType_(NSStringPboardType)
print pbstring.split(" ")
[编辑]
看起来 pyperclip
也应该在 windows 和 OS X 下工作,因此这似乎是一个可移植的解决方案。参考:https://pypi.python.org/pypi/pyperclip/
从您的评论中可以看出,您实际上并不是在询问如何读取剪贴板的内容;你只是问如何解析恰好来自剪贴板的一些数据(大概是 you/the 用户手动粘贴的)。
所以真正的问题是:如何从 Python 源解析看起来有点像列表文字的东西?
如果它实际上 是 来自 Python 源的列表文字,则使用 ast
模块中的 literal_eval
函数:
>>> import ast
>>> s = "['a',2, (4,'b')]"
>>> lst = ast.literal_eval(s)
>>> print(lst)
['a', 2, (4, 'b')]
但是,如果您实际上不知道数据的来源,那么它很可能实际上是 JSON(您应该使用 json.loads
进行解析)、YAML 或其他格式这在表面上类似于 Python 文字但不完全相同。如果您尝试用 literal_eval
解析 JSON,它将在您的初始测试中起作用,然后在现实生活中由于 false
而不是 False
或类似的原因而失败。这就是为什么真正了解您拥有的数据类型很重要。如果它来自 Python 源代码,或者来自某些 Python 脚本调用 print
和列表,那就是 literal_eval
的目的。
尝试 Pandas read_clipboard:
import pandas
pandas.read_clipboard(header=None)
这应该 return 你是一个 DataFrame。请参阅 pandas.read_table().
文档中有关参数的信息