Python|文件处理与数据库编程
某农带专业Python课实验三
txt文件处理
题目描述:编程新建一个名为test.txt文件,存放在代码文件所在目录中,并且打开该文件。然后写入如图1-1所示内容到文件中。最后分别读取5个字符、读取第一行字符串、读取第三行的字符串,读取所有字符串。如图1-2所示。
提示:使用文件操作函数open()、write()、read()、readline()、readlines()、seek()、tell()、close()。
# -*- coding: utf-8 -*-
"""
PROJECT_NAME: pythonProject_ lesson
FILE_NAME: operate_txt
AUTHOR: welt
E_MAIL: tjlwelt@foxmail.com
DATE: 2022/12/1
"""
if __name__ == "__main__":
# 创建并打开文件
f = open("tjl.txt", "w+")
# 写入内容
for i in range(5):
f.write("chriswpf" + str(i + 1) + "\n")
f.close()
# 读取文件
f = open("tjl.txt", "r")
print("读5个字符是:" + f.read(5))
f.seek(0)
print("读第一行字符串是:" + f.readline(), end='')
f.seek(f.tell() * 2)
print("读第三行字符串是:" + f.readline())
f.seek(0)
print("读所有行字符串是:")
fs = f.readlines()
for line in fs:
print(line[:-1], end=' ')
f.close()
csv文件处理
题目描述:编程新建一个名为test.csv文件,存放在代码文件所在目录中,并且打开该文件。然后写入如图2-1所示内容到文件中。最后读取所有文件数据,如图2-2所示。
提示:import csv # csv是内建模块,直接使用
# -*- coding: utf-8 -*-
"""
PROJECT_NAME: pythonProject_ lesson
FILE_NAME: operate_csv
AUTHOR: welt
E_MAIL: tjlwelt@foxmail.com
DATE: 2022/12/1
"""
import csv
if __name__ == '__main__':
# 写入文件
numlist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
f = open("tjl.csv", "w+", newline="")
csvwriter = csv.writer(f)
for item in numlist:
csvwriter.writerow(item)
f.close()
f = open("tjl.csv", "r", newline="")
csvreader = csv.reader(f)
for row in csvreader:
print(row)
f.close()
excel文件处理
题目描述:编程新建一个名为test.xls文件,存放在代码文件所在目录中,并且打开该文件。然后通过xlwt模块写入如图3-1所示内容到文件中。最后通过xlrd模块读取所有文件数据,如图3-2所示。
提示:安装xlrd读模块,安装xlwt写模块。
# -*- coding: utf-8 -*-
"""
PROJECT_NAME: pythonProject_ lesson
FILE_NAME: operate_excel
AUTHOR: welt
E_MAIL: tjlwelt@foxmail.com
DATE: 2022/12/1
"""
import xlrd
import xlwt
if __name__ == '__main__':
book = xlwt.Workbook(encoding="utf-8")
sheet = book.add_sheet("student" , cell_overwrite_ok=True)
sheet.write(0, 0, '学号')
sheet.write(0, 1, '姓名')
sheet.write(0, 2, '性别')
sheet.write(0, 3, '年龄')
sheet.write(0, 4, '班级')
sid = ['2018001', '2018001', '2018001', '2018001', '2018001']
sname = ['张珊', '李斯', '王武', '赵柳', '吴鹏飞']
ssex = ['女', '男', '男', '女', '男']
sage = [18, 19, 18, 19, 18]
sclass = ['计算机1801', '计算机1802', '计算机1801', '计算机1802', '计算机1801']
for i in range(len(sid)):
sheet.write(i + 1, 0, sid[i])
sheet.write(i + 1, 1, sname[i])
sheet.write(i + 1, 2, ssex[i])
sheet.write(i + 1, 3, sage[i])
sheet.write(i + 1, 4, sclass[i])
book.save("test.xls")
wb = xlrd.open_workbook("test.xls")
sheet1 = wb[0]
print(sheet1.name + "信息如下: ")
for i in range(sheet1.nrows):
print(sheet1.row(i)[0].value, end=" ")
print(sheet1.row(i)[1].value, end=" ")
print(sheet1.row(i)[2].value, end=" ")
print(sheet1.row(i)[3].value, end=" ")
print(sheet1.row(i)[4].value, end=" ")
print()
word文件处理
题目描述:编程新建一个名为test.doc文件,存放在代码文件所在目录中,并且打开该文件。然后写入如图4-1所示内容到文件中。最后分别读取5个字符、读取第一行字符串、读取第三行的字符串,读取所有字符串。如图4-2所示。
提示:使用文件操作函数open()、write()、read()、readline()、readlines()、seek()、tell()、close()。
# -*- coding: utf-8 -*-
"""
PROJECT_NAME: pythonProject_ lesson
FILE_NAME: operate_word
AUTHOR: welt
E_MAIL: tjlwelt@foxmail.com
DATE: 2022/12/1
"""
if __name__ == '__main__':
# 创建并打开文件
f = open("test.doc", "w+", encoding="utf-8")
# 写入内容
for i in range(1, 6):
f.write("华中农业大学" + str(i) + "\n")
f.close()
# 读取文件
f = open("test.doc", "r", encoding="utf-8") # r:读模式
print("读6个文字是:" + f.read(6))
f.seek(0)
print("读第一行文字是:" + f.readline(), end='')
f.seek(f.tell() * 2) # 定位到第2号行位置
print(f.tell())
print("读第三行文字是:" + f.readline())
f.seek(0)
print("读所有行文字是:")
fs = f.readlines()
for line in fs:
print(line[:-1], end=' ')
f.close() # 关闭文件
sqlite3数据库编程
题目描述:创建一个测试数据库test. db,该数据库中包含一张student表,该数据表含有五个字段学号sid、姓名sname、性别ssex、年龄sage、班级sclass。
提示:
通过SQL语句insert、delete、update、select分别实现对应数据操作功能。
# -*- coding: utf-8 -*-
"""
PROJECT_NAME: pythonProject_ lesson
FILE_NAME: py_SQLite
AUTHOR: welt
E_MAIL: tjlwelt@foxmail.com
DATE: 2022/12/1
"""
import sqlite3
if __name__ == '__main__':
conn = sqlite3.connect("test.db")
cur = conn.cursor()
create_sql = """create table student
(sid char(2) primary key not null,
sname char(4) not null,
ssex char(6) not null,
age char(6) not null,
class char(20) not null
)
;"""
cur.execute(create_sql)
# 添加一条数据记录
addsql1 = "insert into student values('2018005','王2','男',18,'计算机1803')"
add_sql = "insert into student values('2018004','王1','男',19,'计算机1803')"
cur.execute(add_sql)
cur.execute(addsql1)
conn.commit()
# 删除一个数据记录
del_sql = "delete from student where sid='2018004'"
cur.execute(del_sql)
conn.commit()
# 修改一个数据记录
update_sql = "update student set sname='赵柳', ssex='女' where sid='2018005';"
cur.execute(update_sql)
conn.commit()
# 查询所有数据记录
all_sql = 'select * from student'
cur.execute(all_sql)
ds = cur.fetchall()
for row in ds:
print(row)
cur.close()
conn.close()
mysql数据库编程
题目描述:创建一个测试数据库test.db,该数据库中包含一张teacher表,该数据表含有六个字段教工号tid、姓名tname、性别tsex、年龄tage、职称ttitle。
提示:
通过SQL语句insert、delete、update、select分别实现对应数据操作功能。
# -*- coding: utf-8 -*-
"""
PROJECT_NAME: pythonProject_ lesson
FILE_NAME: py_mySQL
AUTHOR: welt
E_MAIL: tjlwelt@foxmail.com
DATE: 2022/12/1
"""
import pymysql
if __name__ == '__main__':
conn = pymysql.connect("localhost", "root", "tjl20021006", "tjl", charset="utf8")
cur = conn.cursor()
# 添加一条数据记录
sql="insert into teacher values('2018005','王1','男',32,'讲师','理学院')"
cur.execute(sql)
conn.commit()
# 删除一个数据记录
sql = "delete from teacher where tid='2018005'"
cur.execute(sql)
conn.commit()
# 修改一个数据记录
sql="update teacher set tname='wpf', ttitle='副教授' where tid='2018005'"
cur.execute(sql)
conn.commit()
# 查询所有数据记录
sql = "select * from teacher;"
cur.execute(sql)
ds = cur.fetchall()
for row in ds:
print(row)
cur.close()
conn.close()