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.

相关推荐
Ysjt | 深12 分钟前
C++多线程编程入门教程(优质版)
java·开发语言·jvm·c++
ephemerals__18 分钟前
【c++丨STL】list模拟实现(附源码)
开发语言·c++·list
码农飞飞22 分钟前
深入理解Rust的模式匹配
开发语言·后端·rust·模式匹配·解构·结构体和枚举
一个小坑货23 分钟前
Rust 的简介
开发语言·后端·rust
湫ccc31 分钟前
《Python基础》之基本数据类型
开发语言·python
Matlab精灵32 分钟前
Matlab函数中的隐马尔可夫模型
开发语言·matlab·统计学习
Microsoft Word33 分钟前
c++基础语法
开发语言·c++·算法
数据小爬虫@35 分钟前
如何利用java爬虫获得淘宝商品评论
java·开发语言·爬虫
qq_1728055943 分钟前
RUST学习教程-安装教程
开发语言·学习·rust·安装
wjs20241 小时前
MongoDB 更新集合名
开发语言