Python 拖放,获取文件名
我有一个文件夹,里面有好几个光谱数据。我写了一个程序,可以把洛伦兹吸收峰拟合到这些光谱上。为了做到这一点,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)
第一个参数是脚本本身,所以在文件路径列表中会被省略掉。