Python拖放,获取文件名

Fra*_*ank 5 python drag-and-drop

我有一个包含多个光谱的文件夹.我写了一个程序,它将洛伦兹吸收峰拟合到光谱中.为此,Python scipt必须位于同一文件夹中,然后它会读取自己的路径并检测频谱文件.双击scipt后,它适合文件夹中所有光谱文件的峰值.

现在我想稍微改进一下程序.我不希望脚本文件与测量数据位于同一文件夹中,我希望其他人能够轻松使用该程序.为此我需要一种方法,我可以将光谱文件拖放到窗口或类似的窗口中.scipt应该只读取文件的路径和文件名.我可以在我的工作脚本中实现.

这种计划的最佳方法是什么?

Bos*_*ash 11

如果您不需要GUI,并且取决于我将使用的平台sys.argv.

例如,在Windows中,您无法将文件拖到python脚本上,但可以将它们拖到批处理文件中.从批处理文件中,您可以使用文件名作为参数调用脚本.

批处理文件:

python "dropScript.py" %*
pause
Run Code Online (Sandbox Code Playgroud)

%*包含了所有的文件名.

dropScript.py:

import sys

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

第一个参数是脚本本身,因此从file_path列表中省略它.