如何查找运行python脚本的.app目录

时间:2016-09-07 12:16:46

标签: python macos python-3.x py2app

我最近创建了一个python脚本,该脚本遍历放置在其中的任何目录中的文件,并根据特定条件重命名它们。该脚本运行完美,我使用py2app将脚本编译成OS X .app。这也很好。但是现在当我运行脚本时,它会搜索" .app / contents / macOS"中的文件。文件夹(脚本所在的位置)而不是" .app"实际上是位于。

这是因为它在开始时有这个代码:

src = os.path.dirname(os.path.abspath(__file__))

指定" .py"的位置。将文件传递给变量,然后在整个脚本中广泛使用该变量。有没有办法我可以添加一段代码,告诉python" .app"的路径位置。那个" .py"文件正在执行?

如果没有,也许有一种方法可以打开文件浏览器窗口,从那里用户可以选择一个文件夹然后将路径分配给" src&# 34;变量。我对python很新,但这肯定是一个挑战。

2 个答案:

答案 0 :(得分:0)

尝试使用:

import os
print(os.getcwd())

来自docs:

  

<强> GETCWD()

     

返回表示当前工作目录的unicode字符串。

答案 1 :(得分:0)

要查找包装应用程序的@PostConstruct public void initAfterStartup() { ... } @PreDestroy public void cleanupBeforeExit() { ... } 目录的位置,最直接的方法是修改使用当前代码找到的路径。像你一样计算.app之后,只需像这样修剪它并使用src作为路径:

app

这在以import re ... app, rest = re.split(r"/[^/]*\.app/", src, 1) 结尾的第一个路径组件处停止。如果您愿意,可以对应用程序名称进行硬编码,例如: .app

PS。我很困惑你为什么要将你的应用程序复制到你想要修改的文件夹。文件选择对话框或拖放操作是告诉程序要处理什么的更常见(也更简单)的方法。使用/myprogram.app/创建的OS X应用程序支持拖放:您的程序可以像这样获取已删除目录的路径:

py2app

然后只需将要处理的目录拖放到应用程序图标上,您可以将其保存在桌面,Finder的侧边栏或收藏目录中 - 每次使用时都无需复制它,并且不需要知道它的来源。