Python 拖放,获取文件名

6 投票
1 回答
20673 浏览
提问于 2025-04-17 21:30

我有一个文件夹,里面有好几个光谱数据。我写了一个程序,可以把洛伦兹吸收峰拟合到这些光谱上。为了做到这一点,Python脚本必须放在同一个文件夹里,然后它会读取自己的路径,找到光谱文件。双击这个脚本后,它就会把所有光谱文件的峰值拟合上去。

现在我想稍微改进一下这个程序。我不想把脚本文件放在测量数据的同一个文件夹里,而且我希望其他人也能轻松使用这个程序。为此,我需要一种方法,可以让用户把光谱文件拖放到一个窗口里或者类似的地方。这个脚本只需要读取文件的路径和文件名。我可以在我的工作脚本中实现这个功能。

那么,制作这样一个程序的最佳方法是什么呢?

1 个回答

13

如果你不需要图形界面,根据不同的平台,我会使用 sys.argv

比如在Windows系统上,你不能把文件拖到Python脚本上,但你可以把文件拖到一个批处理文件上。然后通过这个批处理文件,你可以用文件名作为参数来调用你的脚本。

批处理文件:

python "dropScript.py" %*
pause

%* 代表所有的文件名。

dropScript.py:

import sys

file_paths = sys.argv[1:]  # the first argument is the script itself
for p in file_paths:
    print(p)

第一个参数是脚本本身,所以在文件路径列表中会被省略掉。

撰写回答