2.6:Python数据存取-文件、文件夹及目录、数据库
2022/6/15 2:52:12
本文主要是介绍2.6:Python数据存取-文件、文件夹及目录、数据库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、Python文件读写
1、文件的打开模式
<class '_io.TextIOWrapper'>和<class '_io.BufferedReader'>。python使用 with as语句来进行文件打开后的自动关闭处理。使用了with as之后,用户可以不用显式调用文件对象的close方法来关闭文件。Python打开文件的函数是open,其核心参数是文件名称和打开模式。默认是“rt”,也就是read和text,读文本文件模式。如果设定rb,即读二进制binary模式,返回的Wrapper对象是不同的,一个是TextIOWrapper类型,一个是BufferedReader类型。
2、文件读取
Demo1.txt的内容为:文本“Beijing Institute Of Technology”分4行显示。
3、文件打开与写入
writelines方法把一个列表内容直接按顺序写入文件deomo2.txt,不会自动为列表元素添加回车换行。如果需要写入文件时各元素换行排列,这应该手工为每个元素的后面加上回车换行。可以采用列表推导式:fo.writelines([line+"\n" for line in s])。
4、批量存入文件
输出结果:Beijing Institute of Technology is a comprehensive university in Beijing(桌面文件Demo3.txt中)。可以使用文件的write方法多次批量写入数据。这种方法在实际中应用很广泛,比如对一个大文件读取切割成大小相同或特定长度的子文件等。检测条件:桌面有文件Demo3.txt,其内容为: Beijing Institute of Technology is a comprehensive university in Beijing
5、移动指针
输出结果:ChinabuildingForbidden city(桌面文件Demo4.txt中)。首先,列表中的元素没有回车换行,所以会把“GreatbuildingForbidden city”写入文件。但seek(0)把指针重新移到文件头部,然后写入“China”。因此,“China”会覆盖“Great”。seek的参数为:0:文件开头; 1: 当前位置; 2: 文件结尾。
6、把模拟数据写入文件
输出结果:桌面有Demo5.txt文件,内容为十行文本(内容为随机生成)。faker是一个模拟数据生成的python库,可以设定模拟生成的语言,如中文:zh_cn,默认为英语。Faker类提供很多方法,如name返回姓名,address返回地址,email返回电子邮件等。
二、文件和文件夹处理
1、获取当前目录
输出结果:”.”和一个绝对路径。curdir属性返回current directory(当前目录),而getcwd方法则返回当前工作目录(current work directory)。chdir(newd)方法改变当前目录到指定的newd目录。
2、路径分解
输出结果:('c:\\temp\\test', 'file.txt')。split方法返回一个元组(头,尾),其中尾部是最后一个斜杠后面的内容,其他部分归头部。
3、扩展名分解
输出结果:('c:\\temp\\test\\file', '.txt')。spletext函数返回一个二元组(根,扩展),其中扩展部分是从最后一个“逗点”到最后的所有文字,忽略其中的“逗点”。扩展部分可以为空。这个方法可以获取一个文件的扩展名。
4、获取目录列表
输出结果:True,True。Mkdir方法在当前目录下生成一个text目录。然后通过isdir方法判定是否为目录。通过listdir方法可以列出某个目录下所有的文件和目录。通过使用in判定text目录是否在当前目录下。
5、目录树遍历
在当前文件夹下,执行os的walk方法。这个方法是一个迭代方法,对于每一级目录,返回一个三元组(root,dirs,files),分别表示当前目录的根目录,子目录和文件。迭代输出每一级目录下的根目录,文件夹数和文件数量。
6、使用GLOB库进行文件查找
import osimport glob if "text" not in os.listdir(os.curdir): os.mkdir("text") os.chdir("text") os.makedirs("L1/L2/L3") for root,dirs,files in os.walk(os.curdir): with open(str(root)+".txt","w+") as f: pass files=glob.glob("*/*.txt") print(files)
输出结果:['L1/L2.txt']。在当前目录下生产text目录。然后切换到text目录,使用walk方法,在每个目录下生成txt文件。然后查找后缀为txt的所有文件。星号表示全匹配,问号表示匹配单字,[0-9]表示匹配0-9个数字。
7、文件拷贝
输出结果:success。在当前目录下新建一个文件from.txt,然后判定当前文件创建成功之后,使用shutil的拷贝命令,将文件拷贝到同级目录下,并改名为to.txt。确认to.txt文件存在之后,打印出成功的信息:拷贝成功。
8、文件打包
输出结果:压缩成功。在上述目录中,执行压缩代码,可以将text目录下的所有内容压缩为一个zip包,名字为textpack.zip,并存放在当前目录下。通过in判断是否压缩生成所需压缩包,然后输出成功信息。
三、SQLite3数据库存取
1、新建数据库
import os
import sqlite3
输出结果:数据创建成功。连接对象可以是硬盘上面的数据库文件,也可以是建立在内存中的。创建在硬盘: conn = sqlite3.connect(‘test.db');创建在内存: conn = sqlite3.connect(‘:memory:’)。
2、新建数据库表与数据插入与查询
import os import sqlite3 from faker import Faker f=Faker("zh_cn") conn =sqlite3.connect("test.db") c = conn.cursor() c.execute("create table if not exists user (id varchar(20) primary key, name varchar(20))") for i in range(0,100): c.execute("insert into user (id, name) values ('{}','{}')".format(i,f.name()))
输出结果:共有100条数据,类型是<class 'list'>。创建游标之后,执行数据库建表的SQL命令,生成主键为id的user表。然后插入100条模拟数据。最后执行select查询命令,获取数据,并通过fetchall函数,返回一个python的列表,以便进一步的处理。
3、修改数据
import os import sqlite3 from faker import Faker f=Faker("zh_cn") conn =sqlite3.connect("test.db") c = conn.cursor() c.execute("create table if not exists user (id varchar(20) primary key, name varchar(20))") for i in range(0,100): c.execute("insert into user (id, name) values ('{}','{}')".format(i,f.name())) c.execute("update user set name='Caocao' where id==0") c.execute("select * from user where id==0") r2=c.fetchone() print("{}".format(r2))
输出结果:('0', '曹操')。通过SQL命令:update进行更新,并输出更新后的数据。
4、删除数据
conn =sqlite3.connect("test.db") c = conn.cursor() c.execute("create table if not exists user (id varchar(20) primary key, name varchar(20))") for i in range(0,100): c.execute("insert into user (id, name) values ('{}','{}')".format(i,f.name())) c.execute("select * from user") r1=c.fetchall() c.execute("delete from user where id==3") c.execute("select * from user") r2=c.fetchall() print("{}:{}".format(len(r1),len(r2)))
结果输出:99:99。通过SQL语句delete from 删除了第3条记录,然后对删除前后的记录总数,判定删除成功。
这篇关于2.6:Python数据存取-文件、文件夹及目录、数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享