将文件拖放到Python脚本上

3 投票
3 回答
8153 浏览
提问于 2025-04-16 23:02

我想找一种跨平台的方法,让我的Python脚本可以通过拖放文件的方式来处理文件路径。目前,我是手动去终端使用sys.argv这个方法:

python myscript.py /Python/myfile.xls

不过这样做太慢了,而且感觉很“技术化”。我希望能有一种快速且互动的方式,让我的Python脚本能处理文件。虽然我主要需要它在Mac上工作,但如果能跨平台就更好了。

3 个回答

1

你想把 myfile.xls 文件拖到你的 Python 脚本上吗?比如在 Mac 上的 Finder,或者 Windows 上的资源管理器,或者其他文件管理器?如果是这样的话,就没有一个简单的跨平台解决方案,因为你需要针对不同系统的不同软件进行处理。

如果你是在 Mac 上,可以试试 AppleScript,这里有一个 示例

如果你想用 Python 来实现,可以看看 http://appscript.sourceforge.net/http://docs.python.org/library/macosa.html

另外,解决方案就在上面的回答里。你可以使用 Tk、wx 或 QT 来构建一个自定义的图形界面。你可以查阅它们各自的文档,了解如何实现拖放功能,它们都有跨平台的方法。

2

如果你想使用Tkinter,可以看看这个Tkinter DnD的绑定,链接在这里 http://klappnase.bubble.org/TkinterDnD/index.html

运行后,这个绑定会展示一个示例,里面有一个列表框,你可以把文件拖到这个列表框里。

0

最简单的方法就是用Tkinter或者类似的工具写一个小的图形界面,让用户可以在这个界面里选择文件。大概可以这样做:

import tkFileDialog
f = tkFileDialog.askopenfilename()
# Go on from there; f is a handle to the file that the user picked

不过,我不知道有什么跨平台的方法可以让脚本支持拖放功能,不过这样做可能更简单。

撰写回答