Python一一如何运行程序

本分类文章参照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函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值