Python拖放,获取文件名[关闭]
Posted
技术标签:
【中文标题】Python拖放,获取文件名[关闭]【英文标题】:Python drag and drop, get filenames [closed] 【发布时间】:2014-04-12 10:46:18 【问题描述】:我有一个文件夹,里面有几个光谱。我编写了一个程序,将洛伦兹吸收峰拟合到光谱中。为此,Python scipt 必须位于同一文件夹中,然后它会读取自己的路径并检测光谱文件。双击 scipt 后,它会将峰拟合到文件夹中的所有光谱文件。
现在我想稍微改进一下程序。我不想将脚本文件与测量数据放在同一个文件夹中,我希望其他人能够轻松使用该程序。为此,我需要一种可以将光谱文件拖放到窗口或类似窗口中的方法。 scipt 应该只读取文件的路径和文件名。我可以在我的工作脚本中实现它。
这种程序的最佳方法是什么?
【问题讨论】:
真的需要创建GUI吗?为什么不只是一个命令行脚本,将带有绘图的目录作为其参数之一传递? 可以使用tkinter
选择目录:***.com/questions/11295917/…
可能重复:Drag and drop onto Python script in Windows Explorer
【参考方案1】:
如果您不需要 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 列表中省略。
【讨论】:
酷这个工作!该程序读取我的文件的文件路径。是否有任何 sys 操作我只提取文件名和文件路径? os.path.split 可以拆分路径和文件名 os.path.dirname() 也返回目录,os.path.basename() 从路径返回文件名 除非我遗漏了你所说的一些细微差别,否则你可以将文件或文件夹拖到 Windows 中的 python 脚本上 @User 嗯,我在 Windows 7 上不适合我。以上是关于Python拖放,获取文件名[关闭]的主要内容,如果未能解决你的问题,请参考以下文章