質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1615閲覧

pythonでクリップボードの空白を取得したい。

colorful_39

総合スコア20

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/05/14 08:11

編集2020/05/14 10:25

pyperclipを使ってクリップボードにコピーした値を
取得することはできたのですが、リスト化すると
空白が無くなってしまいます。

AA BB CC DD EE

上記のような文字列は普通にリスト化できるのですが..

AA CC DD EE

のような場合、空白がリスト化できません。
何か手はありのでしょうか?

何方かご教示いただけると助かります。

コード

import pyperclip

test = pyperclip.paste().split()
print(test)

結果

['AA', 'CC', 'DD', 'EE']

欲しい結果

['AA','', 'CC', 'DD', 'EE']

環境

python 3.x  windows10

追記

詳しく説明させて頂きます。
スプレッドシートを使った表がありまして
横並びに項目が4つあって、それが縦にズラッと並んでいます。

4項目をABCDとして、それぞれ1セルに分かれています。
1行コピーして、AとDの値が欲しいのですが
途中のBとCが空欄の場合があります。
すると、リスト化の再にズレが生じておかしくなります。

これを避けたいので、空白もリスト化できないものかと悩んでおります。
説明不足に長文、失礼しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2020/05/14 08:58 編集

欲しい結果は、以下のように2個以上の空白が全部同じでいいのでしょうか? 'AA CC DD EE'→['AA', 'CC', 'DD', 'EE'] 'AA CC DD EE'→['AA', '', 'CC', 'DD', 'EE'] 'AA CC DD EE'→['AA', '', 'CC', 'DD', 'EE'] 'AA CC DD EE'→['AA', '', 'CC', 'DD', 'EE'] # これが質問に書いてあるもの あと単純にタイトルと質問が合っていません。
meg_

2020/05/14 08:38

「.split()」を止めて、文字列を自力で処理すれば良いかと思います。
colorful_39

2020/05/14 09:57

quiqui様 質問の意味がわかりませんが、ご返答ご指摘ありがとうございます。
colorful_39

2020/05/14 09:58

meg_様 文字列を自力でとは、どういう事でしょうか?
quickquip

2020/05/14 09:59

あっ、コメント欄は空白が1つに潰れちゃうのですね。失礼しました。 'AA(空白)CC(空白)DD(空白)EE'→['AA', 'CC', 'DD', 'EE'] 'AA(空白)(空白)CC(空白)DD(空白)EE'→['AA', '', 'CC', 'DD', 'EE'] 'AA(空白)(空白)(空白)CC(空白)DD(空白)EE'→['AA', '', 'CC', 'DD', 'EE'] 'AA(空白)(空白)(空白)(空白)CC(空白)DD(空白)EE'→['AA', '', 'CC', 'DD', 'EE'] # これが質問に書いてあるもの と入力してました。
colorful_39

2020/05/14 10:07

んん? すみません。よくわかりませんが詳しく説明させて頂きます。 スプレッドシートを使った表がありまして 横並びに項目が4つあって、それが縦にズラッと並んでいます。 4項目をABCDとして、それぞれ1セルに分かれています。 1行コピーして、AとDの値が欲しいのですが 途中のBとCが空欄の場合があります。 すると、リスト化の再にズレが生じておかしくなります。 これを避けたいので、空白もリスト化できないものかと悩んでおります。 説明不足に長文、失礼しました。
quickquip

2020/05/14 10:28 編集

なるほど、質問には AA(空白)(空白)(空白)(空白)CC(空白)DD(空白)EE と書いてありますが実際はそうではないのでしょうね。 print(repr(pyperclip.paste()) の実行を確認して、質問を編集して追記すると確実だろうと思います。 あと一つ上の情報も、この欄ではなくて質問に追記してください。
guest

回答2

0

ベストアンサー

python

1"AA CC DD EE".split(sep=" ") 2# ['AA', '', 'CC', 'DD', 'EE']

で、どうでしょうか。
空白の数だけ項目が増えることが前提です

※追記
区切り文字は空白ではなくタブとのことなので、

python

1.split(sep="\t")

でどうですか。

投稿2020/05/14 09:36

編集2020/05/14 10:27
x98000

総合スコア1096

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

colorful_39

2020/05/14 10:08

x98000様 返答ありがとうございます。 すみません、うまく行きませんでした。
x98000

2020/05/14 10:10

どううまく行きませんでしたか? 元のコードの .split() を .split(sep=" ") に変えて実行してみてください
colorful_39

2020/05/14 10:17

私が実行すると ['AA\t\tCC\tDD\tEE'] と、返ってきます。
x98000

2020/05/14 10:24

クリップボードの中身は「空白」ではなく「タブ」で区切られてるのですね? であれば、回答を変更します。
colorful_39

2020/05/14 10:47

できました! ありがとうございます。 質問の仕方がわるかったのですね。すみませんでした。
guest

0

GoogleスプレッドシートのA1セルに300、B1セルとC1セルは空白、D1セルに400と入力した例

Python

1test = pyperclip.paste().split('\t') 2#['300', '', '', '400']

投稿2020/05/14 10:40

編集2020/05/14 10:43
meg_

総合スコア10580

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問