python模块(类似于c语言的分文件)
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
模块让你能够有逻辑地组织你的 Python 代码段。
把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
模块能定义函数,类和变量,模块里也能包含可执行的代码。
1、import的应用
orangepi@orangepizero2:~/python$ vi support.py
orangepi@orangepizero2:~/python$ vi test.py
orangepi@orangepizero2:~/python$ python2.7 test.py
Hello : Runoob
orangepi@orangepizero2:~/python$ cat support.py
def print_func( par ):
print "Hello : ", par
return
orangepi@orangepizero2:~/python$ cat test.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 导入模块
import support
# 现在可以调用模块里包含的函数了
support.print_func("Runoob")
导入模块,会先在当前路径中找,找不到会进入环境变量中找
2、from…import 语句
orangepi@orangepizero2:~/python$ vi test02.py
orangepi@orangepizero2:~/python$ python2.7 test02.py
Hello : Runoob
orangepi@orangepizero2:~/python$ cat support.py
def print_func( par ):
print "Hello : ", par
return
orangepi@orangepizero2:~/python$ cat test02.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 导入模块
from support import print_func
# 现在可以调用模块里包含的函数了
print_func("Runoob")
搜索路径:
- 1、当前目录
- 2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
- 3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
在文件比较大的时候,最好有一个主文件:
添加:if __name__ == '__main__':
文件编程:打开,写入,读取文件
orangepi@orangepizero2:~/python$ vi filewrite.py
orangepi@orangepizero2:~/python$ python2.7 filewrite.py
orangepi@orangepizero2:~/python$ ls
bianliang08.py filewrite.py func05.py likescanf06.py suojin04.py while13.py
break14.py foo.txt func23.py link16.py support.py yuan19.py
chi03.py for15.py funcret06.py link17.py support.pyc yuantolie20.py
dic21.py formatestr.py hello01.py link18.py test02.py
doubleif11.py func02.py hello02.py mouif12.py test.py
fenge_print09.py func03.py if10.py str05.py test.sh
fileread.py func04.py leixing07.py stract16.py time22.py
orangepi@orangepizero2:~/python$ cat foo.txt
www.runoob.com!
Very good site!
orangepi@orangepizero2:~/python$ vi fileread.py
orangepi@orangepizero2:~/python$ python2.7 fileread.py
读取的字符串是 : www.runoob
当前文件位置 : 10
重新读取字符串 : www.runoob
orangepi@orangepizero2:~/python$ cat filewrite.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 打开一个文件
fo = open("foo.txt", "w")
fo.write( "www.runoob.com!\nVery good site!\n")
# 关闭打开的文件
fo.close()
orangepi@orangepizero2:~/python$ cat fileread.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10)
print "读取的字符串是 : ", str
# 查找当前位置
position = fo.tell()
print "当前文件位置 : ", position
# 把指针再次重新定位到文件开头
position = fo.seek(0, 0)
str = fo.read(10)
print "重新读取字符串 : ", str
# 关闭打开的文件
fo.close()
3、异常抛出
orangepi@orangepizero2:~/python$ vi yichang.py
orangepi@orangepizero2:~/python$ python2.7 yichang.py
1 Invalid level!
quit
orangepi@orangepizero2:~/python$ cat yichang.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 定义函数
def mye( level ):
if level < 1:
raise Exception,"Invalid level!"
# 触发异常后,后面的代码就不会再执行
try:
mye(0) # 触发异常
except Exception,err:
print 1,err
print 'quit'
else:
print 2
抛出异常2
orangepi@orangepizero2:~/python$ cp yichang.py yichang2.py
orangepi@orangepizero2:~/python$ vi yichang2.py
orangepi@orangepizero2:~/python$ python2.7 yichang2.py
1 Invalid level!
除以0警告
orangepi@orangepizero2:~/python$ cat yichang2.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 定义函数
def mye( level ):
if level ==0:
raise Exception,"Invalid level!"
# 触发异常后,后面的代码就不会再执行
try:
mye(0) # 触发异常
except Exception,err:
print 1,err
print '除以0警告'
else:
print 2