IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python——基础语法(模块、包、文件读写等操作) -> 正文阅读

[Python知识库]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块,都能确保文件正确的关闭,以此来达到释放资源的目的,不需要手动关闭资源。

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:24:34  更:2022-09-21 00:27:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:19:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码