从finder执行时python重命名脚本不起作用(Mac)

时间:2013-04-30 19:54:33

标签: python

Helly everyone,

我是python的新手,但我编写了一个小脚本来帮助我重命名文件扩展名。 它很短,所以我会在这里发布:

import os

for filename in os.listdir("."):
    if filename.endswith("gd"):
        os.rename(filename, filename + ".dat")

现在,由于我有几个目录需要执行此操作,因此总是导航到终端中的文件夹并使用命令从那里执行它会变得有点烦人

python renamescrip.py

现在我偶然发现了一些建议,可以在Finder中双击python脚本,这样可以让我的生活变得更轻松,因为我只需要将renamescript.py复制并粘贴到文件夹中。我想重命名文件并双击它来执行它。

我按照以下说明操作:http://skillfulness.blogspot.de/2010/12/how-to-run-python-script-from-mac-os-x.html,其中显示了如何创建.command文件。

但是,当我双击renamescript.command文件时,它没有更改目录中的文件名。

我也尝试用Python Launcher打开.py文件,但这也没有改变文件名。

两次都打开了一个终端窗口,其中包含以下消息:

cd '/path to directory with files to rename/' && '/usr/local/bin/pythonw'  '/path to directory with files to rename/renamescript.py' && echo Exit status: $? && exit 1
Exit status: 0
logout

或者如果我单击.command文件,它只是:

/path to directory with files to rename/renamescript.command ; exit;
logout

我做错了什么?

1 个答案:

答案 0 :(得分:0)

双击时,从当前目录运行的目录与从shell运行时的目录不同。这会导致os.listdir(".")找不到您认为应该的文件。您应该使用

更改脚本开头的目录
os.chdir(os.path.dirname(os.path.abspath(__file__)))
os.listdir来电

之前

相关问题