Python文件操作

在学python的学习路上做个小笔记。

目录

一、文件的基本操作
二、文件流
三、文件目录操作
四、模块和包

文件的基本操作

打开文件

在Python中,使用内置函数open()进行文件的一些读写操作
文件操作的格式:
open(文件路径,访问模式,字符编码) 前面两个参数是必备参数,后面的字符编码是选填,但是大多数情况下都是会写上字符编码
访问模式
r 只读 打开文件进行读取,如果文件不存在则报错。
w 只写 打开供追加的文件,如果不存在则创建该文件。
a 追加 打开文件进行写入,如果文件不存在则创建该文件。
b 二进制文件

**t 文本模式

  • 更新**

读取文件

read() 读取文件中全部内容,返回一个字符串
readline() 读取文件中一行的内容,返回一个字符串
readlines() 读取文件中的所有内容,返回一个列表,并且文件中每一行是列表中的一个元素

例如:

python 复制代码
1 = open ("test.txt","r")

写入/创建文件

write: 写入单行内容,每次只可以接受一个参数,且只能是字符串

例如:文件名.write("")

python 复制代码
1.write("hello world")

writelines:写入多行内容,且在括号中用中括号\[\]包裹,元素用逗号隔开,向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符

例如:文件名.writelines("\[\]")

python 复制代码
1.writelines([" \nnihao"])#\n是换行符

x 创建 创建指定的文件,如果文件存在则返回错误。

python 复制代码
w+ : 打开文件,如果文件存在,会将文件删除后新建,不存在则直接新建,使用+号后,可以进行读取
r+ : 读取文件不会被清空,而且光标在最前面,使用+号后,可以写入新的内容
a+ : 文件打开后,光标在最后面,并有文件中原有的内容

删除文件

python 复制代码
import os    #os删除模块
os.rmdir("文件名")

关闭文件

通常操作完文件后,可以进行对应的关闭使用 close()

例如:

python 复制代码
f = open('./a.txt','r',encoding='utf-8')
# print(f.read())
# print(f.readline())
print(f.readlines())  # 文件中如果有换行,就会转移为\n,与内容一起成为列表的元素
f.close()  # 使用完文件进行关闭
#绝对路径:以盘符开头逐层写路径的是绝对路径 
#相对路径:以当前文件目录为起点编写路径 ./代表当前目录 ../代表上层目录,注意:不写./时默认为当前目录

文件流

python 复制代码
导入io包  : import io
StringIO()   生成字符串临时文件
BytesIo()    生成二进制临时文件
getvalue()   获取这个临时文件中保存的所有内容

例如:

python 复制代码
import io
# 创建一个字符串临时文件
str_io = io.StringIO()
str_io.write('这是写入字符串临IO流中的内容')
# 获取临时文件中的数据->虚拟文件
print(str_io.getvalue())

# 创建一个二进制临时文件
byte_io = io.BytesIO()
byte_io.write(b'this is bytesData')  # 在引号前面加个b,代表这个是二进制数据字节
print(byte_io.getvalue())

文件目录操作

python 复制代码
import os #os模块
os.getcwd()  #获取当前目录路径
os.chdir()   #改变当前所有路径(切换路径)
os.listdir() #获取目录列表,默认获取的是当前目录
os.mkdir('') #创建文件夹
os.rename('','') #文件夹重命名,也支持文件重命名,前面为文件夹之前的名字,后面为新文件夹名
os.makedirs    #创建多层目录
os.remove    #移除文件
os.rmdir    #删除目录
os.removedir    #删除多层目录
os.system("cmd")    #调用系统命令
os.walk    #遍历文件夹
os.path    #路径操作

模块和包

Python有一个可用于制作随机数的内建模块。random模块有一组如下的方法:

Python还有其它模块,如下:

  • os:提供了丰富的函数操作文件和目录,例如:os.remove()删除文件,os.rename()重命名文件,os.walk()生成目录树下的所有文件,os.system()执行shell命令等。

  • sys:用于操作Python运行时的环境,例如:sys.path返回模块的搜索路径,sys.argv返回命令行参数列表等。

  • json:用于字符串的序列化和反序列化,例如:json.dumps()将Python对象编码成JSON字符串,json.loads()将JSON字符串解码成Python对象。

  • re:用于字符串的正则表达式操作,例如:re.match()匹配字符串的开始,re.search()搜索字符串,re.findall()找到所有匹配的字符串,re.sub()替换字符串中的匹配项。

  • datetime:用于操作日期和时间,例如:datetime.datetime.now()获取当前时间,datetime.timedelta()表示两个日期或时间之间的差。

  • math:提供了基本的数学运算函数,例如:math.sqrt()计算平方根,math.log()计算自然对数。

  • random:用于生成随机数,例如:random.random()生成0到1之间的随机浮点数,random.randint()生成指定范围内的随机整数。

  • collections:提供了一些容器数据类型,例如:collections.Counter()用于计数,collections.defaultdict()用于创建带有默认值的字典。

  • urllib:用于操作URL,例如:urllib.request.urlopen()打开一个URL,urllib.parse.urlencode()将字典编码成URL参数。

  • logging:用于记录日志信息,例如:logging.basicConfig()设置日志的基本配置,logging.info()记录信息等级的日志。

  • numpy:用于科学计算的模块,提供了多维数组对象和复杂的函数,例如:numpy.array()创建数组,numpy.dot()计算数组的点积。

  • pandas:用于数据分析的模块,提供了强大的数据结构DataFrame和Series,以及对数据进行分析的函数。

  • requests:用于发送HTTP请求的模块,例如:requests.get()发送GET请求,requests.post()发送POST请求。

  • selenium:用于自动化Web浏览器的模块,可以用来进行网页的自动化测试和网页爬虫。

  • smtplib:用于发送邮件,例如:smtplib.SMTP()初始化SMTP服务器的连接,smtplib.SMTP.sendmail()发送邮件。

  • email:用于处理邮件的模块,提供了邮件对象,例如:email.message.EmailMessage()创建邮件对象,email.encoders.encode_base64()对邮件进行编码。

  • sqlite3:用于操作SQLite数据库的模块,例如:sqlite3.connect()连接数据库,sqlite3.Cursor()创建游标对象。

  • pymysql:用于连接MySQL数据库的模块,例如:pymysql.connect()连接MySQL数据库,pymysql.cursors.DictCursor()创建字典游标。

  • pymongo:用于连接MongoDB数据库的模块,例如:pymongo.MongoClient()连接MongoDB,pymongo.database.

相关推荐
昵称画2 小时前
交接班记录电子化:三班之间的信息不漏
开发语言·数据库·人工智能·低代码·php
“AI国潮设计-小江”2 小时前
【AIGC实战】Python+SDXL批量生成“潮汕英歌舞不倒翁”IP | 角色一致性与多场景融合方案,附完整代码
开发语言·人工智能·python·prompt·aigc
传奇开心果编程2 小时前
【Rust入门练中学】第6课:结构体与方法
开发语言·rust·结构体·编程语言理论·结构体方法·编程通用语言
Linux_cy2 小时前
服务器管理工具哪个好用?我用了七八个
运维·服务器·javascript·python·ssh·面板·gmssh
MoRanzhi12032 小时前
第6篇(下)· 使用 PyQt5 实现 2048 高性能计算版:统一运行控制与跨模式安全交接
python·pyqt·进程管理·状态机·软件架构·并发控制·数据一致性
code tsunami2 小时前
【无标题】
开发语言·python
CodeGL3 小时前
10、Python基础之进程和线程
开发语言·python
TechWayfarer4 小时前
PHP漏洞被利用,怎么揪出攻击IP?
开发语言·python·tcp/ip·网络安全·php
2601_967980115 小时前
Python列表操作方法详解
python·数据类型·修改·列表操作·功能汇总
卡卡~~5 小时前
“101计划”核心课程实践教材《数据实验结构指导-C++语言版》题目集
开发语言·c++·学习·算法