• Python——基础语法(模块、包、文件读写等操作)


    一、模块

    概述:一个模块就是一个扩展名为.py的文件,可以包含多个函数、类、语句;使用模块可以提高代码的可维护性、可重用性,避免函数名和变量名冲突,方便其他程序和脚本的导入和使用。

    二、模块的自定义

    创建一个新模块即是新建一个.py文件,名称尽量不要与python自带的标准模块名称相同。

    模块的导入:

    • import 模块名
    • from 模块名称 import 函数/变量/类

    三、主程序方式运行

    在我们自定义一个模块(a.py)然后导入到另一个模块(b.py)的时候,我们运行b的时候很有可能先会执行a模块的代码,导致结果不是我们想要的;解决这个问题就需要引入主程序方式的运行。

    在每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其他程序中执行,它可能在解释器的顶级模块中执行。顶级模块中的__name__变量的值为__main__。

    1. # @Author:韩慧腾
    2. # @Time :2022/9/14 21:30
    3. # @File :Demo_main.py
    4. # 努力已经来不及了,你得拼命
    5. #该模块未被任何模块导入
    6. print(__name__)#__main__
    1. # @Author:韩慧腾
    2. # @Time :2022/9/14 21:30
    3. # @File :Demo_main.py
    4. # 努力已经来不及了,你得拼命
    5. a=100
    6. print(__name__)#__main__
    1. # @File :Demo1.py
    2. # 努力已经来不及了,你得拼命
    3. import Demo_main
    4. print(Demo_main.a)

    在被导入到Demo1模块后,运行Demo1模块会出现以下结果

     我们的预期结果是只有一个100,但实际是先把Demo_main模块执行了,而且__name__是模块名,不是__main__;因此我们可以采用主程序运行的方式解决此问题。

    1. # @File :Demo_main.py
    2. # 努力已经来不及了,你得拼命
    3. a=100
    4. if __name__ == '__main__':
    5. print(__name__)
    1. # @File :Demo1.py
    2. # 努力已经来不及了,你得拼命
    3. import Demo_main
    4. print(Demo_main.a)

    运行Demo1后结果如下:

    二、包(Python Package)

     概述:包是一个分层次的目录结构,将一组功能相近的模块组织在一个目录下;使得代码规范,避免模块名称冲突

    包与目录(Directory)区别:

    • 创建一个包之后会自动在包下生成一个__init__.py文件
    • 目录里面不含__init__.py文件

    包的导入:import 包名.模块名 (as 名字)

    注:上面的名字就是包名.模块名的一个别名,应用起来更加方便

    直接import和from……import导入的区别:

    • 直接使用import导入时,后面只能跟包名或者模块名
    • 使用from……import导入时,后面可以跟包、模块名、函数名、变量名等等

    三、Python中常见的内置模块

     四、常见的字符编码格式

       Python的解释器使用的是Unicode;.py文件的磁盘上使用的是UTF-8存储。

    五、文件的读写(IO操作)

    1. # @Author:韩慧腾
    2. # @Time :2022/9/16 17:14
    3. # @File :File_Demo00.py
    4. # 努力已经来不及了,你得拼命
    5. file=open("D:\Demo.txt",'r')#第一个参数是所要打开文件位置,第二个参数是读文件的意思
    6. print(file.readlines())#会返回一个列表
    7. file.close()#关闭资源通道

     文件的类型:

    • 文本文件:存储的是普遍"字符"文本,默认为Unicode字符集,可以使用记事本程序打开
    • 二进制文件:把数据内容用"字节"进行存储,无法用记事本打开,必须使用专用的软件打开。eg:mp3音频文件,jpg图片,doc文档等

    1. # @Author:韩慧腾
    2. # @Time :2022/9/16 17:40
    3. # @File :File_Demo01.py
    4. # 努力已经来不及了,你得拼命
    5. file=open("D:\Demo.txt",'w')#第一个参数的文件没存在的话会直接创建,存在的话会直接覆盖原来内容
    6. file.write('键盘敲烂,月薪过万')#会替换掉原有内容
    7. file=open("D:\Demo.txt",'a')#第二个参数为a的话会直接在原有内容后面追更,不会覆盖原有内容
    8. file.write('Python')
    9. file.close()
    1. # @Author:韩慧腾
    2. # @Time :2022/9/16 22:35
    3. # @File :File_Demo02.py
    4. # 努力已经来不及了,你得拼命
    5. #图片的复制
    6. file=open("D:\美图\c98cb68b34f9fe8b6989a09dddc8257.jpg",'rb')
    7. file1=open("D:\美图\美女.jpg",'wb')
    8. file1.write(file.read())
    9. file.close()
    10. file1.close()

    文件对象的常用方法:

    1. # @Author:韩慧腾
    2. # @Time :2022/9/17 15:21
    3. # @File :File_Demo03.py
    4. # 努力已经来不及了,你得拼命
    5. #文件对象常用方法
    6. file=open("D:\Demo.txt",'r')
    7. print(file.read())#读取文件内容
    8. print(file.readline())#读取文件一行内容
    9. '''
    10. 上面的readline是继read方法读取内容之后继续读取,而不是重新读取该文件
    11. '''
    12. print(file.readlines())#返回一个列表,按行读取所有内容

     

    1. # @Author:韩慧腾
    2. # @Time :2022/9/17 16:37
    3. # @File :File_Demo04.py
    4. # 努力已经来不及了,你得拼命
    5. file=open("D:\Demo1.txt",'a')
    6. file.write('网络安全为人民,网络安全靠人民')
    7. lst=['PHP','HTML','CSS']
    8. file.writelines(lst)#会把列表中的内容追加到文件中去
    9. '''
    10. 网络安全为人民,网络安全靠人民网络安全为人民,网络安全靠人民PHPHTMLCSS
    11. '''
    12. file.close()

    with语句:with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,以此来达到释放资源的目的,不需要手动关闭资源。

     

  • 相关阅读:
    docker 安装 neo4j
    elastic数据迁移或者修改mapping
    gpgcheck介绍
    使用百度EasyDL实现新闻资讯自动分类
    Python数据分析教程(二):Pandas
    java家政服务平台计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    微信小程序之点击事件
    MySQL主从复制与读写分离
    期货开户市场的交易时间
    OpenHarmony开发实战:HDF驱动开发流程
  • 原文地址:https://blog.csdn.net/weixin_65049289/article/details/126859007