系统命令行和文件——用法笔记:命令行和文件 | 第一部分 开始 —— 第 3 章: 你是如何运行程序的 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-380玩彩网官网入口
从系统命令行运行程序文件时一个相当直接的启动选项,特别是如果之前工作中已经对命令行很熟悉。它也可能是运行python程序的最可移植的方式,因为几乎每台电脑都有命令行和目录结构的某种概念。然而,对初学者,下面是关于常见初学者陷阱的一些指引,可以帮助你避免一些挫折:
-
注意windows和idle的自动扩展。如果使用 notepad 程序来在windows上编码程序文件,当到了保存文件时,小心选择类型“所有文件”,且明确给文件 .py 的后缀。否则, notepad 将用 .txt 后缀来保存文件(比如,如 script1.py.txt),这让使用一些方案变得困难;比如,这样将无法导入。
更糟的是, windows 默认隐藏了文件扩展名,所以除非已经修改了视图选项,可能甚至没有注意到编码了一个文本文件而不是python文件。文件的图标可能会暴露这一点——如果它上面没有某种蛇,可能就会有麻烦了。在idle中未着色的代码和当点击时文件被打开来编辑而非运行则是这个问题的其他症状。
微软 word 类似地默认添加了 .doc 后缀;更糟得多的是,它添加了那些不符合python语法的格式化字符。作为一个经验法则,在windows下保存时总是选择“所有文件”,或使用更编程友好的文本编辑器如idle。idle甚至不会自动添加 .py 后缀——一个并不是所有程序员都喜欢的功能。
-
在系统提示符使用文件扩展名和目录路径,但在导入时不要使用。在系统命令行不要忘记键入文件的完整名称——也就是,使用
python script1.py
而非python script1
。作为对比,python的import
语句(我们将在本章后面学习)忽略了 .py 文件后缀和目录路径(比如,import script1
)。这可能看起来不重要,但搞混这两个是常见错误。系统提示符是在系统shell中,不在python中,所以python的模块文件搜索规则不适用。因此必须包含 .py 扩展名和(如果必要)希望运行的文件的完整目录路径。比如,要运行一个不在当前目录中的文件,通常需要列出其完整路径(比如,
python d:\test\spam.py
)。然而,在python代码中,可以只是说import spam
然后依赖于 python 模块搜索路径去定位文件,后面会讲到。 -
在文件中使用
print
语句。是的,这个已经讨论过了,但它是如此常见的一个错误以至于值得至少在这里再重复一次。不像在交互式编程中,通常必须使用print
语句来查看程序文件的输出。如果没有看到任何输出,确保在文件中已经说了“print”。print
语句在交互式会话中不是必须的,因为python会自动回显表达式结果;prints
不会在这里造成困难,但它是多余的输入。