系统命令行和文件——用法笔记:命令行和文件

未匹配的标注

从系统命令行运行程序文件时一个相当直接的启动选项,特别是如果你从之前的工作中已经对命令行很熟悉了。它也可能是运行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不会在这里造成困难,但它是多余的输入。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~