python学习笔记12-模块使用

python学习笔记12-模块使用

模块os,sys


什么是模块?

模块os,sys

模块是Python组织代码的一种基本方式

一个Python脚本可以单独运行,也可以导入到另外一个脚本运行,用import hello语句来导入,不用加入.py

什么是Python的 包?

Python的模块可以按照目录组织为包

创建一个包的步骤:

创建一个名字为包名的目录

在改目录下创建一个__init__.py文件

根据需要,在该目录下存放脚本文件或已编译的扩展及子包

import pack.m1,pack.m2,pack.m3

查看Python

sys.path

export PYTHONPAT

In [311]: import sys

In [312]: sys.path
Out[312]: 
[‘‘,
 ‘/usr/local/bin‘,
 ‘/usr/local/lib/python27.zip‘,
 ‘/usr/local/lib/python2.7‘,
 ‘/usr/local/lib/python2.7/plat-linux2‘,
 ‘/usr/local/lib/python2.7/lib-tk‘,
 ‘/usr/local/lib/python2.7/lib-old‘,
 ‘/usr/local/lib/python2.7/lib-dynload‘,
 ‘/usr/local/lib/python2.7/site-packages‘,
 ‘/usr/local/lib/python2.7/site-packages/IPython/extensions‘,
 ‘/root/.ipython‘]

In [313]: import string
In [314]: import t
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-314-c2d7a4e4fb09> in <module>()
----> 1 import t
ImportError: No module named t#找不到这个模块

[[email protected] ~]# ls /usr/local/lib/python2.7/string.py
/usr/local/lib/python2.7/string.py
[[email protected] ~]# ls /usr/local/lib/python2.7/os.py
/usr/local/lib/python2.7/os.py

自定义python的path,一些自己开发的工具可以放在该目录下

方法一:通过sys.path.append(‘/root/library‘)

[[email protected] ~]# mkdir /root/library
In [315]: sys.path.append(‘/root/library‘)
In [316]: sys.path
Out[316]: 
[‘‘,
 ‘/usr/local/bin‘,
 ‘/usr/local/lib/python27.zip‘,
 ‘/usr/local/lib/python2.7‘,
 ‘/usr/local/lib/python2.7/plat-linux2‘,
 ‘/usr/local/lib/python2.7/lib-tk‘,
 ‘/usr/local/lib/python2.7/lib-old‘,
 ‘/usr/local/lib/python2.7/lib-dynload‘,
 ‘/usr/local/lib/python2.7/site-packages‘,
 ‘/usr/local/lib/python2.7/site-packages/IPython/extensions‘,
 ‘/root/.ipython‘,
 ‘/root/library‘]

方法二、修改/root/.bashrc

[[email protected] ~]# vim /root/.bashrc

添加一行:export PYTHONPATH=/root/library

[[email protected] ~]# . /root/.bashrc 
[[email protected] ~]# echo $PYTHONPATH
/root/library
[[email protected] ~]# ipython
In [2]: import sys
In [3]: sys.path
Out[3]: 
[‘‘,
 ‘/usr/local/bin‘,
 ‘/root/library‘,
 ‘/usr/local/lib/python27.zip‘,
 ‘/usr/local/lib/python2.7‘,
 ‘/usr/local/lib/python2.7/plat-linux2‘,
 ‘/usr/local/lib/python2.7/lib-tk‘,
 ‘/usr/local/lib/python2.7/lib-old‘,
 ‘/usr/local/lib/python2.7/lib-dynload‘,
 ‘/usr/local/lib/python2.7/site-packages‘,
 ‘/usr/local/lib/python2.7/site-packages/IPython/extensions‘,

实例:

In [2]: with open(‘/etc/hosts‘) as fd:
   ...:     s = fd.read()
In [4]: s.count(‘\n‘) #统计行数,使用\n换行符作为分割的标准
Out[4]: 19 

[[email protected] ~]# vim wordcount.py 
#!/usr/bin/python
def wordCount(s):
    chars = len(s)          #统计字符数
    words = len(s.split())  #统计单词数量,
    lines = s.count(‘\n‘)   #统计行数,以\n出现的次数为标准,不能使用lines=len(s.splid(‘\n‘)),这样最后结尾的\n会多统计一行None
    print lines,words,chars
s = open(‘/etc/passwd‘).read()
wordCount(s)

[[email protected] ~]# python wordcount.py 
42 71 2051
[[email protected] ~]# wc /etc/passwd
42   71 2051 /etc/passwd

[[email protected] ~]# vim wordcount.py 
[[email protected] ~]# vim test.py  #默认是找的当前目录下的
#!/usr/bin/python
import wordcount

[[email protected] ~]# python test.py 
42 71 2051

[[email protected] ~]# ll  #当wordcount.py被当成模块使用的时候,会产生编译文件wordcount.pyc,当再次引用,效率更高
总用量 36
drwxr-xr-x  2 root root 4096 9月   8 04:30 library
-rw-r--r--  1 root root   38 9月   8 04:59 test.py
-rw-r--r--  1 root root  182 9月   8 04:54 wordcount.py
-rw-r--r--  1 root root  424 9月   8 05:00 wordcount.pyc
时间: 2024-12-06 00:55:23

python学习笔记12-模块使用的相关文章

python 学习笔记 12 -- 写一个脚本获取城市天气信息

最近在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么能够显示后最重要的就是显示什么的问题了.最容易想到的就是显示时间啊,CPU利用率啊,IP地址之类的.那么我觉得呢,如果能够显示当前时间.温度也是甚好的,作为一个桌面小时钟还是很精致的. 1. 目前有哪些工具 目前比较好用的应该是 weather-util, 之前我获取天气信息一般都是通过它. 使用起来也很简单: (1) Debian/Ubuntu 用户使用 sudo apt-get install weather-util 安装

Python学习笔记—itertools模块

这篇是看wklken的<Python进阶-Itertools模块小结> 学习itertools模块的学习笔记 在看itertools中各函数的源代码时,刚开始还比较轻松,但后面看起来就比较费劲... 1.itertools.count(start=0,step=1) 此函数用来创建一个迭代器,生成从n开始的连续整数,如果忽略n,则从0开始计算 如果超出了sys.maxint,计数器将溢出并继续行-sys.maxint-1开始计算 定义: def count(start=0, step=1):

Python学习笔记-常用模块

1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作为输入执行.这就是传说中的 脚本.随着你的程序变得越来越长,你可能想要将它分割成几个更易于维护的文件.你也可能想在不同的程序中使用顺手的函数,而不是把代码在它们之间中拷来拷去. 为了满足这些需要,Python 提供了一个方法可以从文件中获取定义,在脚本或者解释器的一个交互式实例中使用.这样的文件被称

python学习笔记(八)-模块

大型python程序以模块和包的形式组织.python标准库中包含大量的模块.一个python文件就是一个模块.1.标准模块 python自带的,不需要你安装的2.第三方模块 需要安装,别人提供的. pip install xxx 自动化安装的 手动安装 首先下载安装包 解压 在命令行里面进入到这个解压之后的目录 执行python setup.py install3.自己写的 自己写的python文件import xx 导入一个文件 ,导入文件的实质是什么,把这个python运行一次import

python学习笔记(五) - 模块

一. 使用模块 引入sys模块,使用import #!/usr/bin/env python # -*- coding: utf-8 -*- ' a test module ' __author__ = 'Michael Liao' import sys def test(): args = sys.argv if len(args)==1: print 'Hello, world!' elif len(args)==2: print 'Hello, %s!' % args[1] else: p

Python学习笔记2—模块

模块的使用 引用模块的两种形式 形式一: import module_name 形式二: from module1 import module11   (module11是module的子模块) 例:引用精确除法模块 >>> 5/2 2 >>> from __future__ import division >>> 5/2 2.5 >>> 5//2 2 >>> 如过需要进行开方,乘方,对数等运算就需要用到Python

python学习笔记glob模块

python有许多的类库,现将学习记录下来,以供以后回顾复习: 1.glob模块 用于文件名操作,匹配指定目录下的文件,常用的有两个函数: glob(pattern),返回匹配的文件的列表. iglob(pattern),返回生成器,可以遍历匹配的文件. 示例代码: glob()bogon:datasets xuguoqiang$ ls matrixA.txt matrixB.txt test words.txt files = glob.glob('*.txt') >>> for fi

python学习笔记(模块初识、pyc和PyCodeObject是什么)

一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sys.argv) #打印相对路径,在pycharm输出结果是绝对路径,因为在pycharm中调用 print(sys.argv[2]) #可以从数据列表中取值,[2]指取第三位.        标准库存放位置:C:\Python35\Lib 第三方库存放位置C:\Python35\Lib\site-p

Python 学习笔记 - Paramiko 模块

Python提供了一个Paramiko模块,允许我们通过SSH 对远程系统进行操作,上传和下载文件.他的使用很直观,下面直接看例子. 例1 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author Yuan Li import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko

Python 学习笔记 - 时间模块

Python里面用来管理时间的模块有2个,分别是time模块和datetime模块,现在看看如何使用 首先看看time模块 例1 import time print(time.time()) #时间戳,1970年到现在的秒数 ------------------- 1474347039.991068 例2 print(time.ctime()) #当前系统时间字符串格式 ------------------- Tue Sep 20 14:50:39 2016 例3 print(time.ctim