Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mac上处理Python可执行路径?_Python_Macos_File - Fatal编程技术网

如何在mac上处理Python可执行路径?

如何在mac上处理Python可执行路径?,python,macos,file,Python,Macos,File,如何制作一个程序(可执行)来检查一些.csv文件。该程序应在位于同一目录中的文件上运行,并使用MAC。问题是: 当我从代码中创建mac可执行文件时,会创建一个.app。由于这是一种存档,工作目录会发生变化。访问与.app位于同一文件夹中的文件的正确方法是什么 我通过查看.app是如何构造的,破解了一个解决方案。然后我读取了目录路径并从这个字符串中删除了几个字符。它能工作,但不漂亮。如果您有想法,如何使它更好,将不胜感激。以下是我所做的: dirhack=os.getcwd() csvpath=d

如何制作一个程序(可执行)来检查一些
.csv文件
。该程序应在位于同一目录中的文件上运行,并使用MAC。问题是:

当我从代码中创建mac可执行文件时,会创建一个.app。由于这是一种存档,工作目录会发生变化。访问与.app位于同一文件夹中的文件的正确方法是什么

我通过查看.app是如何构造的,破解了一个解决方案。然后我读取了目录路径并从这个字符串中删除了几个字符。它能工作,但不漂亮。如果您有想法,如何使它更好,将不胜感激。以下是我所做的:

dirhack=os.getcwd()
csvpath=dirhack[0:(len(dirhack)-32)]+'/'
...
with open(csvpath+filename,'wb') as csv_file:
...
os.getcwd()
不返回文件的目录。为此,您需要
os.path.dirname(os.path.realpath(_文件_))
其中
_文件_
是一个python常量,用于指示当前python文件


但是,如果问题仅仅是使文件可执行,则不需要为其制作应用程序。打开一个终端,转到该文件并执行
chmoda+x file.py
。这将使它可以从终端执行(这意味着您可以使用
/file.py
运行它)

嗨!不幸的是,终端的方式已经过时了,因为我的朋友没有python,他甚至没有使用终端。如果你的朋友没有python,他打算如何让这个脚本运行?这正是我必须制作一个可执行文件的原因。应用程序-脚本不行。就脚本而言,整个问题不会出现。为此,我使用了PyInstaller。当然,结果不是通用的,但在这种情况下可以实现。然后我仍然会选择
os.path.dirname
解决方案。我猜您的Python源代码将位于
.app
目录中。如果这是真的,
appdir=os.path.dirname(os.path.realpath(\uuu file\uu))
将指向
.app
目录本身和
topdir=os.path.dirname(os.path.dirname(os.path.realpath(\uu file\uu))
应该指向
.app
目录所在的目录。这样,您就可以使用
os.path.join(topdir,filename)
在该目录中找到csv文件(假设您知道文件名。否则,您可能必须使用
glob
搜索该文件)