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

一、模块

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

二、模块的自定义

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

模块的导入:

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

三、主程序方式运行

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

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

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

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

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

# @File :Demo_main.py
# 努力已经来不及了,你得拼命
a=100
if __name__ == '__main__':
    print(__name__)
# @File :Demo1.py
# 努力已经来不及了,你得拼命
import Demo_main
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操作)

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

 文件的类型:

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

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

文件对象的常用方法:

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

 

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

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨四点半sec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值