How do I copy a string to the clipboard on Windows using Python?

后端 未结 23 3160
温柔的废话
温柔的废话 2020-11-22 03:13

I\'m trying to make a basic Windows application that builds a string out of user input and then adds it to the clipboard. How do I copy a string to the clipboard using Pytho

23条回答
  •  执念已碎
    2020-11-22 03:40

    I didn't have a solution, just a workaround.

    Windows Vista onwards has an inbuilt command called clip that takes the output of a command from command line and puts it into the clipboard. For example, ipconfig | clip.

    So I made a function with the os module which takes a string and adds it to the clipboard using the inbuilt Windows solution.

    import os
    def addToClipBoard(text):
        command = 'echo ' + text.strip() + '| clip'
        os.system(command)
    
    # Example
    addToClipBoard('penny lane')
    
    # Penny Lane is now in your ears, eyes, and clipboard.
    

    As previously noted in the comments however, one downside to this approach is that the echo command automatically adds a newline to the end of your text. To avoid this you can use a modified version of the command:

    def addToClipBoard(text):
        command = 'echo | set /p nul=' + text.strip() + '| clip'
        os.system(command)
    

    If you are using Windows XP it will work just following the steps in Copy and paste from Windows XP Pro's command prompt straight to the Clipboard.

提交回复
热议问题