pandas.read_clipboard 只读取整行而不是列

pandas.read_clipboard only reads whole lines not columns

我将所有 python3 代码从 macOS 转移到 Ubuntu 18.04,在一个程序中我需要使用 pandas.clipboard()。此时剪贴板中有一个多行多列的列表,用制表符分隔,每个元素都用引号引起来。

刚刚尝试后

import pandas as pd
df = pd.read_clipboard()

我收到此错误:pandas.errors.ParserError: Expected 8 fields in line 3, saw 11. Error could possibly be due to quotes being ignored when a multi-char delimiter is used.。第 3 行看起来像 "word1" "word2 and another" "word3" ...。没有引号,您计算 11 个元素,在引号内,您计算 8 个。

下一步我尝试了

import pandas as pd
df = pd.read_clipboard(sep='\t')

我没有收到任何错误,但结果仅在一个系列中,剪贴板源的每一行都在一个元素中

是的,也许在这一步之后编写代码来分隔一行的每个元素是一种解决方案,但因为它在 macOS 下运行良好(仅 pd.read_clipboard())我希望有更好的解决方案。

感谢您的帮助。

我为我的问题写了一个"turnaround"。这不是确切的解决方案,但因为我只需要数组中一列的元素,所以我这样解决了它:

import pyperclip

# read clipboard
cb = pyperclip.paste()

# lines in array
cb_arr = cb.splitlines()

column = []

for cb_line in cb_arr:

    # words in array
    cb_words = cb_line.split("\"")

    # pick element of column 1
    word = cb_words[1]

    column.append(word)

# delete column name
column.pop(0)

print(column)

也许它对其他人也有帮助。