【问题标题】:PyInstaller: drag-and-drop files to the --onefile exePyInstaller:将文件拖放到 --onefile exe
【发布时间】:2013-05-18 16:46:48
【问题描述】:

我终于启动并运行了 PyInstaller。到目前为止看起来不错,我可以创建一个 exe,对 exe 所在目录中的文件进行一些计算。所以我只需将 exe 复制到包含我需要处理的文件的文件夹中,然后双击 exe(Windows 7)。

但是如果我只是将我的文件拖放到上面然后它会计算那些文件____,是否有可能制作一个 .exe?

【问题讨论】:

    标签: python windows-7 python-2.7 pyinstaller


    【解决方案1】:

    迟到的答案 (5Y),但如果您将文件放入使用 pyinstaller 创建的 exesys.argv 将收到包含所有拖动文件路径的 list
    第一项([0])是exe的路径,即:

    import sys
    print(sys.argv)
    ['C:/name_of.exe', 'C:/the_file_dragged1', , 'C:/the_file_dragged2']
    

    【讨论】:

      【解决方案2】:

      有一种简单的方法可以查看您放置在可执行文件上的文件是如何处理的:从具有此类内容的文件构建 exe:

      import sys
      def __main__():
          with open("parameters.log", "ab") as f:
              f.write(str(sys.argv))
      

      将它与您拖放的一个或多个文件一起使用并观察parameters.log 的内容:您应该会发现,对于每个文件,它的绝对路径都作为参数传递。 nth 文件的路径在sys.argv[n]

      这实际上可以推广到任何可执行文件。

      【讨论】:

      • 不知何故我无法让你的代码工作,但它把我推向了正确的方向。我可以按照您的建议使用sys.argv[n]。不知道我的问题是出在__main__() 还是open()
      猜你喜欢
      • 2020-12-17
      • 2019-01-16
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      • 2015-10-28
      • 2017-05-21
      • 1970-01-01
      • 2020-11-05
      相关资源
      最近更新 更多