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

时间:2016-01-30 15:39:08

标签: python macos python-idle

当我运行python脚本时,终端没有返回错误而没有执行。

也在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]

虽然没有执行任何内容。甚至不是文件中的print语句。文件内容:

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)

1 个答案:

答案 0 :(得分:0)

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

在文件末尾,如果您希望使用此代码执行某些操作,则需要调用该函数。这将在函数定义之后,并确保将其去除到左边距。

rename_files()

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

if __name__ == '__main__':
    rename_files()

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