簡體   English   中英

將文件存儲在 python 的剪貼板中(跨平台)

[英]Store files in clipboard in python (cross-platform)

我正在嘗試將文件存儲在 windows mac 和 linux 的剪貼板中。 例如:運行腳本會將文件/文件放在剪貼板中,現在我可以 ctrl+v 粘貼文件的任何位置。

對於 windows,我在 c# 中編寫了此代碼:

using System;
using System.Windows.Forms;
using System.Collections.Generic;
using System.Collections.Specialized;

namespace file2clip
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            StringCollection paths = new StringCollection();
            foreach (string s in args) paths.Add(s);
            Clipboard.SetFileDropList(paths);
        }
    }
}

然后在 python 中實現:

import subprocess

def files_to_win_clip(files: tuple):
    subprocess.call(f'file2clip.exe {files}')

對於 linux,我找到了允許復制和粘貼文件的 xclip,但它不會 go 到默認剪貼板,因此我無法將文件粘貼(使用 ctrl+v)無論我在哪里。

我可能需要一些關於如何使它在 linux 和 mac 上工作的幫助。

有很多 python 模塊可以做到這一點。 其中之一是https://pypi.org/project/pyperclip/

c 程序不需要這種方式,您可以將 python 中的文件作為文本讀取或執行所有您想要的邏輯並將其放入剪貼板。

對於完整的文件副本,您可以使用此代碼段:

from PyQt4 import QtCore, QtGui

app = QtGui.QApplication([])

data = QtCore.QMimeData()
url = QtCore.QUrl.fromLocalFile('c:\\foo.file')
data.setUrls([url])

app.clipboard().setMimeData(data)

我無法發表評論,但xclip可以按如下方式使用:

$ xclip -selection clipboard [FILES]

這會將文件的文本復制到剪貼板; 我不確定這是否是您正在尋找的行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM