Python教程11

Python教程11

  1.包测试

#包导入测试:
#导入测试的Python文件包
import package
#下面直接可以调用package包下的方法
package.rescover_message.rescover_message1()
package.send_message.send_message1()
"""说明:
1.新建立的一个package包
2.__init_.py文件内容如下:
    #-*-coding:utf-8-*-
    #__init__.py这是默认文件,需要编写,提供给外界访问的模块,格式如下:
    # from . import 模块名
    from . import send_message
    from . import rescover_message
3.rescover_message和send_message模块:
        #-*-coding:utf-8-*-
    def rescover_message1():
        print("包和__init__.py文件测试")
    
        #-*-coding:utf-8-*-
    def send_message1():
        print("包和__init__.py文件测试")
"""

  2.release发布模块

#-*-coding:utf-8-*-
print("---------------模块的分享,发布模块---------------")
"""
如果希望自己开发的模块,分享给其他人,可以按照下步骤制作:
1.制作压缩包
    1.创建setup.py(内容如下)
    2.构建模块: python3 setup.py build (在解释器下执行)
    3.生成发布压缩包:python3 setup.py sdist (tar.gz文件就是)
setup.py文件代码:
# -*-coding:utf-8-*-
from distutils.core import setup

setup(name="package",  # 包名
      version="1.0",  # 版本号
      description="描述信息",  # 描述信息
      long_description="完整的描述信息",  # 完整的描述信息
      author="作者",  # 作者
      author_email="作者邮箱",  # 作者邮箱
      url="www.jun.com",  # 主页
      py_modules=["package.rescover_message",  # 包名.模块名
                  "package.send_message"]
      )

"""

print("---------------模块的分享,安装模块---------------")
"""
安装模块:
    1.解压文件:tar -zxvf package-1.0.tar.gz
    2.安装:sudo python3 setup.py install
    3.导入包:import package
    4.调用方法: package.rescover_message.rescover_message1()
                package.send_message.send_message1()
卸载模块:从安装目录下,把安装的模块目录删除
    cd /usr/local/lib/python3.7/dist-packages/
    sudo rm -r package*
"""

  3.pip安装第三方模块

#-*-coding:utf-8-*-
print("-------使用pip安装第三方模块测试---------")
"""
第三方模块:通常是由知名的第三方团队开发,且被程序员广泛使用Python包/模块,例如:
    pygame就是一套非常成熟的游戏开发模块
1.pip是现代,通用的Python包管理工具
2.提供了对python包的查找,下载,安装,卸载等功能
3.安装和卸载命令如下:
    安装和卸载python2.x:
        sudo pip install pygame
        sudo pip uninstall pygame
    安装和卸载python3.x:
        sudo pip3 install pygame
        sudo pip3 uninstall pygame
    在Linux下安装ipython
        sudo apt install ipython
        sudo apt install ipython3

"""

   4.操作文件

# -*-coding:utf-8-*-
"""
文本文件:直接可以打开的文件
二进制文件:需要第三方工具去打开的文件
对文件的操作:三个步骤
    1.打开文件
    2.读写文件
        读:将文件读入内存
        写:将内存内容写入文件
    3.关闭文件
操作文件的函数和方法:
    open 打开文件,并且返回文件的操作对象
        open函数第一个参数是打开的文件名(区分大小写),
        第二个参数时访问方式,默认只读。如果文件存在,返回文件操作对象;文件不存在,抛出异常
    read 将文件内容读取到内存
        read方法可以一次性读入并返回文件的所有内容
    write 将指定内容写入到文件
    close 关闭文件
        close方法负责关闭文件
"""
# 1.打开文件
file = open("README")  # 第二个参数只读可以默认不xie
# 2.读取文件内容
text = file.read()
print(text)
print(len(text))
# 思考,如果读取了文件,在调用异常read方法能够读取到文件内容吗?
# 不能,打开文件时,文件指针指向文件头部,读取结束指针在文件末尾。
# 关闭文件
file.close()

file1 = open("README", "w")  # 写的方式打开文件,文件存在会被覆盖,文件不存在则创建
file1.write("hello")
file1.close()

file2 = open("README", "a")  # 追加方式打开文件,文件存在会被覆盖,文件不存在则创建
file2.write(" hello_123")
file2.close()
# "r+"读写的方式打开文件,"d+"读写方式打开,写时文件被覆盖;"a+"读写方式打开,写时追加
# 提示,开发中以读写方式打开文件,会频繁移动文件指针,影响文件效率,一般用只读,或者只写的方式

# 按行读取文件内容readline方法
file3 = open("READEM1")
while True:
    text = file3.readline()
    if not text:
        break
    print(text, end="")  # m没读取一行末尾已经有一个"\n"了,这里不慌行
file3.close()

# 复制小文件
file_read = open("READEM1")
file_writr = open("README", "w")

text = file_read.read()
file_writr.write(text)

file_read.close()
file_writr.close()

#复制大文件
file_read = open("READEM1")
file_writr = open("README", "w")

while True:
    text=file_read.readline()
    if not text:
        break
    file_writr.write(text)
file_read.close()
file_writr.close()

   5.文件和目录的管理操作

# -*-coding:utf-8-*-
print("------------文件目录的管理和操作演示--------")
"""
在ipython中操作:
import os
os.rename("源文件名","新文件名")
os.remove("删除的文件名")
os.listdir(".") #当前目录下的文件列表
os.path.isdir("文件名") #判断是否是目录
os.mkdir("目录")#创建目录
os.rmdir("目录") #删除目录
os.getcwd()#获取当前目录
os.chdir("目标目录") #修改目录
"""

#字符编码问题
#行首可以增加 # -*-coding:utf-8-*-
hello_str = "hello 世界"  # 在python2.x中可以 hello_str=u"hello 世界"
print(hello_str)
for c in hello_str:
    print(c)

  6.eval函数

#-*-coding:utf-8-*-
"""
eval()函数十分强大,--将字符串当成有效的表达式来求值并返回结果
"""
input_str=input("请输入算术题:")
print(eval(input_str))
#在开发中不要用eval直接转换input的结果

 

posted @ 2018-11-12 10:05  君,子觞  阅读(170)  评论(0编辑  收藏  举报