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

2024-04-19 01:20:03 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好

我对python有点陌生,但我编写了一个小脚本来帮助我重命名文件扩展名。 它很短,所以我把它贴在这里:

import os

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

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

^{pr2}$

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

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

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

我还尝试用Python启动器打开.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

我做错什么了?在


Tags: 文件topathpy目录终端oswith
1条回答
网友
1楼 · 发布于 2024-04-19 01:20:03

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

os.chdir(os.path.dirname(os.path.abspath(__file__)))

在您的os.listdir呼叫之前

相关问题 更多 >