访问python

时间:2015-07-28 19:56:56

标签: python tkinter clipboard

所以我希望能够使用python脚本来复制文件夹的内容,然后将这些内容粘贴到我选择的位置,即文本文件,浏览器等......我遇到了{{ 3}}用于将文本复制到剪贴板,但是当我实现此解决方案时,我无法粘贴任何内容。我正在使用python 3.4。以下是我正在使用的代码:

import os 
import tkinter as tk
import tkinter.filedialog

r = tk.Tk()
r.withdraw()
photo_path= tkinter.filedialog.askdirectory(title='Which folder would you like to copy the contents from?', initialdir='/')

# Get list of filenames in current directory
file_list=[]

for filename in os.listdir(photo_path):
    if os.path.splitext(filename)[1]=='.JPG':
        file_list.append(os.path.splitext(filename)[0])
    else: pass

file_search='code:('+' OR '.join(file_list)+')'

r.clipboard_clear()
r.clipboard_append(file_search)
r.destroy()

2 个答案:

答案 0 :(得分:2)

如果您在脚本结束前未使用剪贴板内容,则会将其丢弃。保持运行直到您不再需要剪贴板内容。以下程序将'1234'保留在剪贴板中10秒钟。如果你不在那段时间内粘贴它,它就会丢失。如果您在该时间内粘贴它,即使程序结束,它仍将保留在剪贴板中。

import tkinter as tk

r = tk.Tk()
r.withdraw()

r.clipboard_clear()
r.clipboard_append('1234')
r.after(10000, lambda: r.destroy())
r.mainloop()

答案 1 :(得分:-2)

How do I read text from the (windows) clipboard from python?

"值得注意的是,在py34,win7中,SetClipboardText在没有事先调用EmptyClipboard的情况下无法正常工作"

import win32clipboard

# set clipboard data
win32clipboard.OpenClipboard()
win32clipboard.SetClipboardText('testing 123')
win32clipboard.CloseClipboard()

# get clipboard data
win32clipboard.OpenClipboard()
data = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
print data