Python 脚本在 OS X 上处于非活动状态

Python script inactive on OS X

当我运行一个python脚本终端returns没有错误也没有执行。

也在 python IDLE 中尝试过: 逐行很好,但是如果我执行文本编辑器的内容,则新行从 IDE 开始但没有执行。

没有返回错误。

etc:~ peter$ which -a python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
/usr/bin/python
/usr/local/bin/python
etc:~ peter$ /usr/bin/python --version
Python 2.7.10
etc:~ peter$ /usr/local/bin/python --version
Python 2.7.9

如果 运行 来自 Python 启动器:

etc:~ peter$ cd '/Users/peter/Documents/' && '/usr/local/bin/pythonw'  '/Users/peter/Documents/rename_files.py'  && echo Exit status: $? && exit 1
Exit status: 0
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

虽然没有执行任何操作。甚至文件中的打印语句也没有。文件内容:

import os
def rename_files():
    #get files
    file_list = os.listdir("/Users/peter/Downloads/prank")
    print (file_list)
    saved_path = os.getcwd()
    #rename files
    os.chdir("/Users/peter/Downloads/prank")
    for file_name in file_list:
        os.rename(file_name, file_name.translate(None,"0123456789"))
    os.chdir(saved_path)

您的文件导入了 os 模块,定义了一个名为 rename_files 的函数,但从未 调用 任何代码。

在文件的最后,如果你想用这段代码做点什么,你需要调用函数。这将在函数定义之后进行,并确保它被去除到左边距。

rename_files()

或者您可以测试将脚本作为可执行文件而不是模块来调用,例如

if __name__ == '__main__':
    rename_files()

这是一个养成的好习惯。它允许您将文件作为脚本调用,立即调用您的代码,但您也可以将文件导入其他脚本,访问它们的功能,但不能 运行 它们(直到您的其他脚本准备好使用他们为了某事)。它让您的文件既可以作为可执行脚本,也可以作为代码库。