• 【python基础语法】模块和包管理,文件的操作(第8天课堂笔记)


    '''
    模块和包管理
    模块和包的定义:
    模块:模块是一个Python文件,以.py结尾,包含了Python对象定义和Python语句
    包:Python中的包就是一个包含__init__.py文件的目录(文件夹)
    为什么代码会有浅色的波浪线和红色的波浪线?
    浅色的波浪线:pycharm检测你的这行代码不符合pep8规范(官方给出的编码规范)
    红色的波浪线:pycharm检测到这行代码语法有问题,或者变量找不到(没有被定义)
    模块的作用:
    模块让你能够有逻辑地组织你的Python代码段
    把相关的功能代码写到一个模块里能让你的代码更好用,更易懂
    模块能定义函数,类和变量,模块里也能包含可执行的代码
    分层设计:方便管理和维护和修改代码
    
    打开文件:open(文件名,打开的模式(r,a,w),encoding=编码方式)
    r模式:读
    a模式:写入,无法读取内容,追加写入(在文件内容的结尾处写入)
    w模式:写入,无法读取内容(覆盖文件中原来的内容)
    
    r模式 打开不存在的文件会报错
    a,w模式打开文件,如果文件不存在,则会自动创建一个
    
    文件读取的三种方式:
    # read()
    # readline()
    # readlines按行读取所有的内容,每一行内容当成一个元素,放到一个列表中(最后返回的是一个列表)
    
    以字节流模式打开文件(图片、视频等格式的文件)
    
    以文件上下文管理器打开文件:with关键字
    举例:
    with open("data.txt","r",encoding="utf8") as f:
        c = f.read()
        print(c)
    '''
    # test01文件内容
    import random
    
    a = 100
    num = 200
    def work():
        print("test01中的work函数")
    
    # 魔法变量:__name__:
    # print("__name__的值:",__name__)
    # 在模块导入的时候不希望执行的代码给与隐藏
    if __name__ == "__main__":
        num = random.random()
        print(num)
    
    # 模块导入
    # 方式一:导入整个模块
    import test01
    # 方式二、导入模块中的部分内容
    from test01 import a
    print(a)
    # 这个波浪线并不是代码写错了,pycharm识别不出我们自定义的这个模块
    from test01 import work
    work()
    # 扩展
    # 通过as给导入进来的方法或者变量重新起个名字(别名)
    # work也可以被叫做w1,如果两个方法或者函数名有重名的时候可以使用as,不然导入的数据会被覆盖掉
    from test01 import work as w1
    w1()
    # 同时导入模块中的多个方法和函数和变量
    from test01 import a,work,num
    print(a)
    print(num)
    
    # 导入模块中所有的内容(不推荐使用)
    from test01 import *
    print(a)
    print(num)
    work()
    
    # 包导入
    # from 包名 import 模块名
    # from 包名.模块名 import 模块中的变量或方法
    # from pack01 import module1
    
    module1.m_func1()
    print(module1.aa)
    print(module1.bb)
    
    from pack01.module1 import aa,bb
    print(aa)
    print(bb)
    
    # 剥洋葱
    from pack01.ppp import p_m1
    print(p_m1.aa)
    print(p_m1.bb)
    # from pack01.ppp.p_m1 import 变量或者方法
    from pack01.ppp.p_m1 import aa,bb
    print(aa)
    print(bb)
    
    # r模式
    # 如何在python中去打开一个文件
    # 打开文件
    # 读取文件中的内容
    f = open("data.txt","r",encoding="utf8")
    data = f.read()
    print(data)
    
    # a模式
    # 写入内容,在文件末尾追加内容
    f = open("data.txt","a",encoding="utf8")
    # # 写入方法write:参数:必须是字符串格式
    f.write("python23期666")
    # # 写入方法writelines:参数:列表
    f.writelines(["111","222","333"])
    
    # w模式
    f = open("data1.txt","w",encoding="utf8")
    # # 读取文件中的内容
    f.write("python66622")
    # # 关闭文件
    f.close()
    
    # 文件读取的三种方式
    f = open("data1.txt","r",encoding="utf8")
    # read():读取文件中所有的内容
    content = f.read()
    print(content)
    # readline():读取一行内容
    res = f.readline()
    print(res)
    # readlines按行读取所有的内容,每一行内容当成一个元素,放到一个列表中(最后返回的是一个列表)
    datas = f.readlines()
    print(datas)
    # 关闭文件
    f.close()
    
    # 以字节流方式打开数据,下载图片,或者爬虫方式下载图片
    f = open("bj01.png","rb")
    c = f.read()
    print(c)
    
    # 通过上下文管理器with去操作文件,不用手动关闭文件,会自动关闭
    with open("data.txt","r",encoding="utf8") as f:
        c = f.read()
        print(c)
    
    # 复制文件操作
    with open("nmb_2020_02_27.py","r",encoding="utf8") as f:
        c = f.read()
    with open("copy01.py","w",encoding="utf8") as fw:
        fw.write(c)
    
    # 自动化测试主要要做的是:逻辑的处理和格式的处理
     
  • 相关阅读:
    Linxu指令--date,cal
    Linux指令--diff
    Linux指令--ln
    Linux指令--rcp,scp
    Linux指令--telnet
    Linux指令--traceroute,netstat,ss
    Linux指令--ping
    Linux指令--route
    Linux指令--ifconfig
    Linux指令--性能监控和优化命令相关指令
  • 原文地址:https://www.cnblogs.com/python-test001/p/12372500.html
Copyright © 2020-2023  润新知