【问题标题】:Python drag and drop, get filenames [closed]Python拖放,获取文件名[关闭]
【发布时间】:2014-04-12 10:46:18
【问题描述】:

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

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

这种程序的最佳方法是什么?

【问题讨论】:

标签: python drag-and-drop


【解决方案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 上不适合我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-16
  • 2016-10-01
  • 1970-01-01
  • 2014-12-05
  • 1970-01-01
相关资源
最近更新 更多