本分类文章参照Python学习手册第4版
一、运行Python程序
如果我们在D:\python文件夹下编写了script1.py文件,需要运行此文件该如何操作:
# A first Python script
import sys
print(sys.platform)
print(2 ** 100)
x = 'Spam!'
print(x * 8)
方式一:首先我们利用cmd运行此文件,打开cmd,输入完整的路径名或者直接python空格,然后将文件拖入到cmd中
Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。
C:\Users\admin>python D:\python\script1.py
win32
1267650600228229401496703205376
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
方式二:我们先获取到D:\python文件路径下,再使用python命令
Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。
C:\Users\admin>d:
D:\>cd d:\python
d:\python>python script1.py
win32
1267650600228229401496703205376
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
方式三:当然,我们也可以直接点击script1.py文件进行运行,但是直接运行文件会出现一闪而过的现象,我们可以通过input技巧来让cmd窗口进行暂停,如下所示:
# A first Python script
import sys
print(sys.platform)
print(2 ** 100)
x = 'Spam!'
print(x * 8)
input()
虽然直接点击script1.py图标文件可以直接运行,但是却无法像cmd命令那样直接显示Python的错误信息。
方式四:采用import导入模块(此方式运行不能重复多于一次)
Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。
C:\Users\admin>d:
D:\>cd d:\python
d:\python>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import script1
win32
1267650600228229401496703205376
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
>>>
方式五:采用exec运行模块文件
Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。
C:\Users\admin>d:
D:\>cd d:\python
d:\python>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exec(open('script1.py').read())
win32
1267650600228229401496703205376
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
>>>
二、模块导入和重载
每一个以扩展名py结尾的Python源代码都是一个模块,其他文件可以通过导入一个模块读取这个模块的内容,从本质上讲,就是载入另一个文件,并能够读取那个文件的内容。
利用import来实现模块的导入,如下我们生成一个myfile.py文件
title = "The meaning of Life"
然后我们利用import来访问属性title
Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。
C:\Users\admin>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import myfile
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'myfile'
>>>
出现上述情况,我们可以根据Python搜索模块路径的方式进行改善:
Python搜索模块的路径:
(1)、程序的主目录
(2)、PTYHONPATH目录(如果已经进行了设置)
(3)、标准连接库目录(一般在/usr/local/lib/python2.X/)
(4)、任何的.pth文件的内容(如果存在的话).新功能,允许用户把有效果的目录添加到模块搜索路径中去.pth后缀的文本文件中一行一行的地列出目录。(有需要的话也会在Lib\site-packages目录下建一个.pth的文件)
这四个组建组合起来就变成了sys.path了,
这里,我们可以采用第二种方式,通过设置PYTHONPATH路径的方式,设置如下:
接下来我们再次运行:
Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。
C:\Users\admin>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import myfile
>>> print(myfile.title)
The meaning of Life
>>>
由于导入是一个开销很大的操作,以至于每个文件、每个程序运行不能重复多于一次,如果希望在同一次回话中再次运行文件,需要调用imp标准库模块中可用的reload函数