我有一个包含多个光谱的文件夹。我写了一个程序,它将洛伦兹吸收峰拟合到光谱中。为此,Python scipt必须位于同一文件夹中,然后它会读取自己的路径并检测频谱文件。双击scipt后,它会使峰值适合文件夹中的所有光谱文件。
现在我想改进一下程序。我不希望脚本文件与测量数据位于同一文件夹中,我希望其他人能够轻松使用该程序。为此我需要一种方法,我可以将频谱文件拖放到窗口或类似的窗口中。 scipt应该只读取文件的路径和文件名。我可以在我的工作脚本中实现。
此类计划的最佳方法是什么?
答案 0 :(得分:11)
如果您不需要GUI,我将根据平台使用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)
第一个参数是脚本本身,因此从file_path列表中省略它。