2016-12-08 12 views
1

pythonに含まれているディレクトリだけを使用して、クリップボードに文字列を挿入する方法を探していました。私は文字列をクリップボードにネイティブにコピーするpython 3

import subprocess 
def copy2clip(txt): 
    cmd='echo '+txt.strip()+'|clip' 
    return subprocess.check_call(cmd, shell=True) 

を試してみましたが、その後、しかし、これは、クリップボード上のテキストに余分な行を追加するように見えた

copy2clip('text') 

を呼び出します。

私もTkinterメソッドを試しましたが、貼り付けようとしたときにPythonウィンドウがクラッシュしました。

私は

import subprocess 
txt = "Save to clipboard!" 
subprocess.run(['clip.exe'], input=txt.strip().encode('utf-16'), check=True) 

を使用窓10

+0

'echo -n ...'を使用してください。 –

+2

シェルを使用する必要はありません。特に 'shell = True'は'/U'オプションを使用しないためcmdの内部コマンド出力Unicodeになります。代わりに、エコーされた出力がコンソールまたはANSIコードページに最適化されています。代わりに、新しい 'run'関数を使用することを検討してください。 'subprocess.run(['clip.exe']、input = txt.strip()。encode( 'utf-16')、check = True)'を実行します。 – eryksun

答えて

2

でPython 3.5.2を実行していますが完全に働きました。この回答にコメントしてくれてありがとう@eryksun。

関連する問題