python基础5

一。目录操作 OS

\1. 取得当前目录

os模块中的getcwd()

\2. 创建目录

os模块中的makedirs()

\3. 更改当前目录

os模块中的chdir()

\4. 将目录分解为为目录和文件名

os模块中的path.split()

\5. 分解文件的扩展名

os模块中的path.splitext()

\6. 判断文件或目录是不是存在

os.path.exists()

\7. 判断是不是文件

os.path.isfile()

\8. 判断是不是目录

os.path.isdir()

\9. 获取目录中的文件和子目录的列表

os.listdir()

10.删除子目录

os.rmdir()

只能删除空目录

import os
def main():
# print(os.getcwd())
# os.makedirs("a/b/c")
# os.chdir("aaa")
# # print(os.getcwd())
# os.chdir("..")
# print(os.getcwd())
# rs=os.path.splitext("D:/pythonProject/Demo2/Demo05.py")
# print(rs)
# flag=os.path.isdir("D:/pythonProject/Demo2/Demo05.py")
# flag = os.path.isfile("D:/pythonProject/Demo2/Demo05.py")
# print(flag)
# flag = os.path.exists("D:/pythonProject/Demo2/Demo05.py")
# print(flag)
# rs=os.listdir("D:/pythonProject/Demo2")
# print(rs)
# print(os.getcwd())
# os.rmdir("aaa")
# os.rmdir("a\\b\c")
# os.rmdir(r"a\b")
# os.rmdir("a")
for root,dirs,files in os.walk("D:/pythonProject/Demo2"):
print(files)





if __name__=="__main__":
main()

import os
import shutil

def main():
rs = input("请入要迁移文件的路径")
rs1 = input("输入迁移到的目标路径")
# if not os.path.exists(rs):
# os.makedirs(rs)
rss = os.path.exists(rs)
if rss==True:
os.makedirs(rs1)
# os.mkdir(rs1)
# for root,dirs,files in os.walk(rs):
# print("目录路径",root)
# print("目录列表",dirs)
# print("目录文件",files)
# print("创建成功")
# zhuanYi(rs,rs1)

# print(os.getcwd())
# filelist = os.listdir(rs)
shutil.move(rs, rs1)
# #
# def zhuanYi(rs,rs1):
# fileList=os.listdir(rs)
# for files in fileList:
# filename = os.path.splitext(files)
# Olddir = rs + '\\' + files + '\\' + str(os.listdir(rs + '\\' + files)[0])
# filename = os.path.splitext(files)[0]
# Newdir = os.path.join(rs1)
# os.rename(Olddir, Newdir)


if __name__== "__main__":
main()
   

 

 

编写一个文件迁移程序,可以迁移一个文件,也可以迁移整个目录要求:1.输入要迁移的路径,和目标路径2.如果目标目录不存在,则创建参考:1. 函数专门用于move2. 函数专门获取子目录列表3. 函数整合各个功能的函数

 

二。excel操作

1. 安装

xlwt:写

xlrd: 读

import xlwt
wb=xlwt.Workbook()
sheet=wb.add_sheet("my_plain")
s1=xlwt.easyxf("pattern: pattern solid,fore_colour red")
s2=xlwt.easyxf("pattern: pattern solid,fore_colour white")

for i in range(10):
if(i%2==0):
sheet.write(i,i,'helloworld',s1)
else:
sheet.write(i, i, 'helloworld', s2)
wb.save("plain.xls")
# 读取excel文件
import xlrd
wb=xlrd.open_workbook('plain.xls')
sheet=wb.sheets()[0]
nrows=sheet.nrows #获取有效行数
# print(nrows)
# for i in range(nrows):
# data=sheet.row_values(i)[:2]
# print(data)
ncols=sheet.ncols
# for i in range(ncols):
# data1=sheet.col_values(1)
# print(data1)

for i in range(nrows):
for j in range(ncols):
cell=sheet.cell_value(i,j)
print(cell,end='\t')
print()
   

 

 

要求:将一个列表写入excel文件,要求位置对应,保存未b.xls列表如下:[[小王,女,23],[小张,男,22],[小张,男,25],[小张,男,20]]最终的表格结构如下:姓名 性别 年龄小王 女 23.。。。。。。

import xlwt
wb=xlwt.Workbook()
sheet=wb.add_sheet("sheet1")
List=[['姓名','性别','年龄'],['小王','女',23],['小张','男',22],['小张','男',25],['小张','男',20]]
for i in range(len(List)):
for j in range(3):
sheet.write(i,j,List[i][j])
wb.save("b.xls")

读取b.xls的内容,但不读取标题的信息。

import xlrd
wb1=xlrd.open_workbook('b.xls')
sheet=wb1.sheets()[0]
nrows=sheet.nrows #获取有效行数
ncols=sheet.ncols
for i in range(1,nrows):
# if i==0:
# continue
for j in range(ncols):
cell=sheet.cell_value(i,j)
print(cell,end='\t')
print()

 

三. 作业

 

要求:写一个控制台学生管理系统,具有的功能:添加学生,修改学生信息,删除学生,显示学生信息,根据名字查找学生信息显示样式如: 欢迎使用学生管理系统*************** 1--添加学生信息 2--修改学生信息 3--删除学生信息 4-显示全部信息 5-根据名字查找学生信息 6-将信息导出到指定位置 0-退出系统********************学生信息包含: 姓名,科目,成绩学生信息存储在student.xls文件中,每一行是一个学生的信息显示全部是显示文件中的所有学生信息删除是指从文件中删除学生的信息。存储的student.xls中如果成绩小60分,背景为红色考虑使用类、包、模块来编写(不强制)
 
# -*- codeing = utf-8 -*-
# @Time:2021/3/20 17:29
# @Autor:杨宇佳
# @File: student.py
# @Software : PyCharm


import xlwt
import xlrd
import os
import shutil


def menu():
print("欢迎使用学生管理系统")
print("*" * 50)
print("1--添加学生信息")
print("2--修改学生信息")
print("3--删除学生信息")
print("4-显示全部信息")
print("5-根据名字查找学生信息")
print("6-将信息导出到指定位置")
print("0-退出系统")
print("*" * 50)

def chance():
while True:
inn = input("请用户输入0-6进入对应的功能")
print(inn)
if inn == '1':
print("添加学生信息")
add()
elif inn == '2':
print("修改学生信息")
update()
elif inn == '3':
print("删除学生信息")
dell()
elif inn == '4':
print("显示全部信息")
insert()
elif inn == '5':
print("根据名字查找学生信息")
name()
elif inn == '6':
print("将信息导出到指定位置")
daoChu()
elif inn == '0':
print("退出系统")
break


def add():

name = input("请输入学生姓名:")
clazz = input("请输入的成绩科目:")
score = input("请输入学生成绩:")
stulist = [name, clazz, score]

rb = xlrd.open_workbook("student.xls")
resheet = rb.sheets()[0]
nrows = resheet.nrows
ncols = resheet.ncols
wb = xlwt.Workbook()
sheet = wb.add_sheet("stu1")
sheet.write(0, 0, "姓名")
sheet.write(0, 1, "科目")
sheet.write(0, 2, "成绩")
s1 = xlwt.easyxf("pattern: pattern solid,fore_colour red")
s2 = xlwt.easyxf("pattern: pattern solid,fore_colour white")
for i in range(1, nrows):
for j in range(ncols - 1):
sheet.write(i, j, resheet.cell_value(i, j))
if int(resheet.cell_value(i, 2)) < 60:
sheet.write(i, 2, resheet.cell_value(i, 2), s1)
else:
sheet.write(i, 2, resheet.cell_value(i, 2), s2)

sheet.write(nrows, 0, stulist[0])
sheet.write(nrows, 1, stulist[1])
if int(stulist[2]) < 60:
sheet.write(nrows, 2, stulist[2], s1)
else:
sheet.write(nrows, 2, stulist[2], s2)
wb.save("student.xls")


def update():

name = input("请输入要更改的学生姓名:")
name1 = input("请输入更改后的学生姓名:")
clazz = input("请输入更改后的成绩科目:")
score = input("请输入更改后的学生成绩:")
list = [name1, clazz, score]

rb = xlrd.open_workbook("student.xls")
resheet = rb.sheets()[0]
nrows = resheet.nrows
ncols = resheet.ncols
wb = xlwt.Workbook()
sheet = wb.add_sheet("stu1")
sheet.write(0, 0, "姓名")
sheet.write(0, 1, "科目")
sheet.write(0, 2, "成绩")
s1 = xlwt.easyxf("pattern: pattern solid,fore_colour red")
s2 = xlwt.easyxf("pattern: pattern solid,fore_colour white")

for i in range(1, nrows):
if name == resheet.cell_value(i, 0):
n = i
continue
else:
for j in range(ncols - 1):
sheet.write(i, j, resheet.cell_value(i, j))

if int(resheet.cell_value(i, 2)) < 60:
sheet.write(i, 2, resheet.cell_value(i, 2), s1)
else:
sheet.write(i, 2, resheet.cell_value(i, 2), s2)

sheet.write(n, 0, list[0])
sheet.write(n, 1, list[1])
if int(list[2]) < 60:
sheet.write(n, 2, list[2], s1)
else:
sheet.write(n, 2, list[2], s2)
wb.save("student.xls")


def dell():
name = input("请输入要删除的学生姓名:")
rb = xlrd.open_workbook("student.xls")
resheet = rb.sheets()[0]
nrows = resheet.nrows
ncols = resheet.ncols
wb = xlwt.Workbook()
sheet = wb.add_sheet("stu1")
sheet.write(0, 0, "姓名")
sheet.write(0, 1, "科目")
sheet.write(0, 2, "成绩")
s1 = xlwt.easyxf("pattern: pattern solid,fore_colour red")
s2 = xlwt.easyxf("pattern: pattern solid,fore_colour white")
for i in range(1, nrows):
if name == resheet.cell_value(i, 0):
for k in range(i, nrows - 1):
for j in range(ncols - 1):
sheet.write(k, j, resheet.cell_value(k + 1, j))
break

else:
for j in range(ncols - 1):
sheet.write(i, j, resheet.cell_value(i, j))

if int(resheet.cell_value(i, 2)) < 60:
sheet.write(i, 2, resheet.cell_value(i, 2), s1)
else:
sheet.write(i, 2, resheet.cell_value(i, 2), s2)
wb.save("student.xls")


def insert():

wb = xlrd.open_workbook('student.xls')
sheet = wb.sheets()[0]
nrows = sheet.nrows
ncols = sheet.ncols
for i in range(nrows):
for j in range(ncols):
cell = sheet.cell_value(i, j)
print(cell, end='\t')
print()

def name():

name = input("请输入要查找的学生姓名:")
rb = xlrd.open_workbook("student.xls")
resheet = rb.sheets()[0]
nrows = resheet.nrows
ncols = resheet.ncols
for i in range(nrows):
if name == resheet.cell_value(i, 0):
for j in range(ncols):
cell = resheet.cell_value(i, j)
print(cell, end="\t\t")
print()


def daoChu():

newpath = input("请输入导出文件的目标路径:")
oldpath="student.xls"
f = os.path.exists(oldpath)
if f == True:
os.makedirs(newpath)
else:
print("需要导出文件的路径不存在,请重新输入:")
shutil.copy(oldpath, newpath)


if __name__=="__main__":
menu()
chance()
# -*- codeing = utf-8 -*-
# @Time:2021/3/22 15:26
# @Autor:杨宇佳
# @File: student.py
# @Software : PyCharm
# -*- codeing = utf-8 -*-
# @Time:2021/3/22 11:10
# @Autor:杨宇佳
# @File: Demo02.py
# @Software : PyCharm

def menu():
print("欢迎使用学生管理系统")
print("*" * 50)
print("1--添加学生信息")
print("2--修改学生信息")
print("3--删除学生信息")
print("4-显示全部信息")
print("5-根据名字查找学生信息")
print("0-退出系统")
print("*" * 50)

def chance():
while True:
inn = input("请用户输入0-6进入对应的功能")
print(inn)
if inn == '1':
print("添加学生信息")
add()
elif inn == '2':
print("修改学生信息")
update()
elif inn == '3':
print("删除学生信息")
dell()
elif inn == '4':
print("显示全部信息")
insert()
elif inn == '5':
print("根据名字查找学生信息")
name()
elif inn == '0':
print("退出系统")
break


import pymysql
def add():
conn=pymysql.connect(host="localhost",user="root",password='591670',database='student')
cursor=conn.cursor()
sql='insert into students(sid,uname,age) values (%s,%s,%s)'
sid=input("输入编号")
uname=input("输入名字")
age=input("输入年龄")
datas=[(sid,uname,age)]
num=cursor.executemany(sql,datas)
cursor.close()
conn.commit()
conn.close()


def update():
conn=pymysql.connect(host="localhost",user="root",password="591670",database='student')
cursor=conn.cursor()
sid=input("输入要更改的学号")
sql='select * from students where sid=%s'
cursor.execute(sql,sid)
rs=cursor.fetchone()
if rs:
sql='update students set uname=%s,age=%s where sid=%s'
uname = input("输入名字")
age = input("输入年龄")
datas = [(uname, age,sid)]
num = cursor.executemany(sql, datas)
cursor.close()
conn.commit()
conn.close()
print("修改成功")
else:
print("无此学生")



def dell():
conn=pymysql.connect(host="localhost",user="root",password="591670",database='student')
cursor=conn.cursor()
sid = input("输入要删除的学号")
sql='delete from students where sid=%s'
cursor.execute(sql,sid)
cursor.close()
conn.commit()
conn.close()


def insert():
conn=pymysql.connect(host="localhost",user="root",password="591670",database='student')
cursor=conn.cursor()
sql='select * from students'
cursor.execute(sql)
while True:
rs=cursor.fetchone()
if rs is None:
break
print(rs)
conn.close()


def name():
conn=pymysql.connect(host="localhost",user="root",password="591670",database='student')
cursor=conn.cursor()
sql='select * from students where uname=%s'
uname=input("输入要查找的学生名字")
cursor.execute(sql,uname)
rs=cursor.fetchone()
print(rs)
conn.close()

if __name__=="__main__":
menu()
chance()
# -*- codeing = utf-8 -*-
# @Time:2021/3/22 15:28
# @Autor:杨宇佳
# @File: Models.py
# @Software : PyCharm
class Student:
def __init__(self):
self.sid=0
self.uname=None
self.age=None
def addStudent(self,cursor):
sql='insert into students(sid,uname,age) values (%s,%s,%s)'
num=cursor.execute(sql,(self.sid,self.uname,self.age))
if num==1:
return '添加成功'
else:
return '添加失败'
def delStudent(self,cursor):
sql = 'delete from students where sid=%s'
num = cursor.execute(sql, (self.sid))
if num == 1:
return '添加成功'
else:
return '添加失败'

def findAll(self,cursor):
sql="select * from students"
cursor.execute(sql)
return cursor.fetchall()

def findStudent(self, cursor):
sql = 'select * from students where uname=%s'
cursor.execute(sql, (self.uname))
return cursor.fetchone()

def updateStudent(self,cursor):
sql='update students set sid=%s,age=%s where uname=%s'
num=cursor.execute(sql, (self.sid,self.age,self.uname))
if num == 1:
return '修改成功'
else:
return '修改失败'


# -*- codeing = utf-8 -*-
# @Time:2021/3/22 15:28
# @Autor:杨宇佳
# @File: view.py
# @Software : PyCharm
import pymysql
from Models import Student
def showmenu():
print("欢迎使用学生管理系统")
print("*" * 50)
print("1--添加学生信息")
print("2--修改学生信息")
print("3--删除学生信息")
print("4-显示全部信息")
print("5-根据名字查找学生信息")
print("0-退出系统")
print("*" * 50)

def addStudent():
conn=pymysql.connect(host="localhost",user="root",password='591670',database='student')
cursor=conn.cursor()
student=Student()
student.sid=input("请输入学号")
student.uname=input("请输入用户名")
student.age=input("请输入年龄")
rs=student.addStudent(cursor)
print(rs)
cursor.close()
conn.commit()
conn.close()

def delStudent():
conn=pymysql.connect(host="localhost",user="root",password='591670',database='student')
cursor=conn.cursor()
student=Student()
student.sid=input("输入要删除的学号")
student.delStudent(cursor)
cursor.close()
conn.commit()
conn.close()

def findAll():
conn=pymysql.connect(host="localhost",user="root",password='591670',database='student')
cursor=conn.cursor()
student=Student()
rs=student.findAll(cursor)
print(rs)
cursor.close()
conn.commit()
conn.close()

def findUname():
conn = pymysql.connect(host="localhost", user="root", password="591670", database='student')
cursor = conn.cursor()
student=Student()
student.uname=input("要查找的学生姓名")
rs=student.findStudent(cursor)
print(rs)
cursor.close()
conn.commit()
conn.close()

def updateStudent():
conn = pymysql.connect(host="localhost", user="root", password='591670', database='student')
cursor = conn.cursor()
student = Student()
student.sid = input("请输入学号")
student.age = input("请输入年龄")
student.uname = input("请输入用户名")
rs = student.updateStudent(cursor)
print(rs)
cursor.close()
conn.commit()
conn.close()

def main():
while True:
showmenu()
num=input("请选择")
if num=='1':
addStudent()
elif num=='2':
updateStudent()
elif num=='3':
delStudent()
elif num=='4':
findAll()
elif num=='5':
findUname()
elif num=='0':
break
else:
print("选择错误,请重新输入")


if __name__=='__main__':
main()
   
posted @ 2021-03-22 18:31  YangYuJia  阅读(3)  评论(0)    收藏  举报