一、实验目的
1、掌握文件的打开、关闭操作的使用步骤;
2、掌握文件读写的相关使用步骤;
3、掌握文件删除及重命名的相关使用步骤;
4、了解扩展库openpyxl的安装与使用
5、了解扩展库 python-docx 的安装与使用
二、实验环境
装有Python运行环境、Pycharm平台的PC电脑一台
三、实验内容
1、完成书中P164页的案例“学生管理系统”,并运行查看结果;
2、从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件”test”中保存。
3、有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中。
"""
3、有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中。
"""
fp1 = open('A.txt', 'w')
a_str1 = input("请写入字符串:")
fp1.write(a_str1)
fp1.close()
fpr1 = open('A.txt', 'r')
a_str11 = fpr1.read()
print("A.txt:",a_str11)
fpr1.close()
fp2 = open('B.txt', 'w')
a_str2 = input("请写入字符串:")
fp2.write(a_str2)
fp2.close()
fpr2 = open('B.txt', 'r')
a_str22 = fpr2.read()
print("B.txt:",a_str22)
fpr2.close()
fp = open('C.txt', 'w')
fp_str = str(a_str1 + a_str2)
fp.write(fp_str)
fp.close()
fpr3 = open('B.txt', 'r')
a_str33 = fpr3.read()
print("C.txt:",a_str33)
fpr3.close()
4、编写程序,生成 200 个人的模拟信息,包括姓名、性别、年龄、电话号码、家庭住址、电子邮箱地址,把生成的信息写入文本文件,每行存放一个人的信息,最后再读取生成的文本文件并输出其中的信息
"""
4、编写程序,生成 200 个人的模拟信息,
包括姓名、性别、年龄、电话号码、家庭住址、电子邮箱地址,
把生成的信息写入文本文件,每行存放一个人的信息,
最后再读取生成的文本文件并输出其中的信息
"""
import random
import string
#常见的姓
n1="王 李 张 刘 陈 杨 黄 赵 吴 周 徐 孙 马 朱 胡 郭 何 高 林 罗 郑 梁 谢 宋 唐 许 " \
"韩 冯 邓 曹 彭 曾 萧 田 董 潘 袁 于 蒋 蔡 余 杜 叶 程 苏 魏 吕 丁 任 沈 姚 卢 " \
"姜 崔 钟 谭 陆 汪 范 金 石 廖 贾 夏 韦 傅 方 白 邹 孟 熊 秦 邱 江 尹 薛 阎 段 " \
"雷 侯 龙 史 陶 黎 贺 顾 毛 郝 龚 邵 万 钱 严 覃 武 戴 莫 孔 向 汤 "
#字
name2="\u7684\u4e00\u662f\u4e86\u6211\u4e0d\u4eba\u5728\u4ed6\u6709\u8fd9\u4e2a\u4e0a\u4eec\u6765"\
"\u5230\u65f6\u5927\u5730\u4e3a\u5b50\u4e2d\u4f60\u8bf4\u751f\u56fd\u5e74\u7740\u5c31\u90a3"\
"\u548c\u8981\u5979\u51fa\u4e5f\u5f97\u91cc\u540e\u81ea\u4ee5\u4f1a\u5bb6\u53ef\u4e0b\u800c"\
"\u8fc7\u5929\u53bb\u80fd\u5bf9\u5c0f\u591a\u7136\u4e8e\u5fc3\u5b66\u4e48\u4e4b\u90fd\u597d"\
"\u770b\u8d77\u53d1\u5f53\u6ca1\u6210\u53ea\u5982\u4e8b\u628a\u8fd8\u7528\u7b2c\u6837\u9053"\
"\u60f3\u4f5c\u79cd\u5f00\u7f8e\u603b\u4ece\u65e0\u60c5\u5df1\u9762\u6700\u5973\u4f46\u73b0"\
"\u524d\u4e9b\u6240\u540c\u65e5\u624b\u53c8\u884c\u610f\u52a8\u65b9\u671f\u5b83\u5934\u7ecf"\
"\u957f\u513f\u56de\u4f4d\u5206\u7231\u8001\u56e0\u5f88\u7ed9\u540d\u6cd5\u95f4\u65af\u77e5"\
"\u4e16\u4ec0\u4e24\u6b21\u4f7f\u8eab\u8005\u88ab\u9ad8\u5df2\u4eb2\u5176\u8fdb\u6b64\u8bdd"\
"\u5e38\u4e0e\u6d3b\u6b63\u611f\u89c1\u660e\u95ee\u529b\u7406\u5c14\u70b9\u6587\u51e0\u5b9a"\
"\u672c\u516c\u7279\u505a\u5916\u5b69\u76f8\u897f\u679c\u8d70\u5c06\u6708\u5341\u5b9e\u5411"\
"\u58f0\u8f66\u5168\u4fe1\u91cd\u4e09\u673a\u5de5\u7269\u6c14\u6bcf\u5e76\u522b\u771f\u6253"\
"\u592a\u65b0\u6bd4\u624d\u4fbf\u592b\u518d\u4e66\u90e8\u6c34\u50cf\u773c\u7b49\u4f53\u5374"\
"\u52a0\u7535\u4e3b\u754c\u95e8\u5229\u6d77\u53d7\u542c\u8868\u5fb7\u5c11\u514b\u4ee3\u5458"\
"\u8bb8\u7a1c\u5148\u53e3\u7531\u6b7b\u5b89\u5199\u6027\u9a6c\u5149\u767d\u6216\u4f4f\u96be"\
"\u671b\u6559\u547d\u82b1\u7ed3\u4e50\u8272\u66f4\u62c9\u4e1c\u795e\u8bb0\u5904\u8ba9\u6bcd"\
"\u7236\u5e94\u76f4\u5b57\u573a\u5e73\u62a5\u53cb\u5173\u653e\u81f3\u5f20\u8ba4\u63a5\u544a"\
"\u5165\u7b11\u5185\u82f1\u519b\u5019\u6c11\u5c81\u5f80\u4f55\u5ea6\u5c71\u89c9\u8def\u5e26"\
"\u4e07\u7537\u8fb9\u98ce\u89e3\u53eb\u4efb\u91d1\u5feb\u539f\u5403\u5988\u53d8\u901a\u5e08"\
"\u7acb\u8c61\u6570\u56db\u5931\u6ee1\u6218\u8fdc\u683c\u58eb\u97f3\u8f7b\u76ee\u6761\u5462"\
"\u75c5\u59cb\u8fbe\u6df1\u5b8c\u4eca\u63d0\u6c42\u6e05\u738b\u5316\u7a7a\u4e1a\u601d\u5207"\
"\u600e\u975e\u627e\u7247\u7f57\u94b1\u7d36\u5417\u8bed\u5143\u559c\u66fe\u79bb\u98de\u79d1"\
"\u8a00\u5e72\u6d41\u6b22\u7ea6\u5404\u5373\u6307\u5408\u53cd\u9898\u5fc5\u8be5\u8bba\u4ea4"\
"\u7ec8\u6797\u8bf7\u533b\u665a\u5236\u7403\u51b3\u7aa2\u4f20\u753b\u4fdd\u8bfb\u8fd0\u53ca"\
"\u5219\u623f\u65e9\u9662\u91cf\u82e6\u706b\u5e03\u54c1\u8fd1\u5750\u4ea7\u7b54\u661f\u7cbe"\
"\u89c6\u4e94\u8fde\u53f8\u5df4\u5947\u7ba1\u7c7b\u672a\u670b\u4e14\u5a5a\u53f0\u591c\u9752"\
"\u5317\u961f\u4e45\u4e4e\u8d8a\u89c2\u843d\u5c3d\u5f62\u5f71\u7ea2\u7238\u767e\u4ee4\u5468"\
"\u5427\u8bc6\u6b65\u5e0c\u4e9a\u672f\u7559\u5e02\u534a\u70ed\u9001\u5174\u9020\u8c08\u5bb9"\
"\u6781\u968f\u6f14\u6536\u9996\u6839\u8bb2\u6574\u5f0f\u53d6\u7167\u529e\u5f3a\u77f3\u53e4"\
"\u534e\u8ae3\u62ff\u8ba1\u60a8\u88c5\u4f3c\u8db3\u53cc\u59bb\u5c3c\u8f6c\u8bc9\u7c73\u79f0"\
"\u4e3d\u5ba2\u5357\u9886\u8282\u8863\u7ad9\u9ed1\u523b\u7edf\u65ad\u798f\u57ce\u6545\u5386"\
"\u60ca\u8138\u9009\u5305\u7d27\u4e89\u53e6\u5efa\u7ef4\u7edd\u6811\u7cfb\u4f24\u793a\u613f"\
"\u6301\u5343\u53f2\u8c01\u51c6\u8054\u5987\u7eaa\u57fa\u4e70\u5fd7\u9759\u963f\u8bd7\u72ec"\
"\u590d\u75db\u6d88\u793e\u7b97\u4e49\u7adf\u786e\u9152\u9700\u5355\u6cbb\u5361\u5e78\u5170"\
"\u5ff5\u4e3e\u4ec5\u949f\u6015\u5171\u6bdb\u53e5\u606f\u529f\u5b98\u5f85\u7a76\u8ddf\u7a7f"
name1=n1.split(" ")#从网上复制粘贴下来有空格所以用了spilt()将空格给去掉了
#姓名
def getName():
name=random.choice(name1)#从name1中选取一个当姓
#姓名长度可能位2,3,4
for i in range(random.choice([2,3,4])-1):#因为前边有一个姓了所以-1
name=name+random.choice(name2)
return name
#性别
def sex():
return random.choice(["男","女"])#从男女中随机选一个
#电话号码,手机号码是一个字符串,11位
def phoneNumber():
number="1"#开头数字是1
for i in range(10):#剩下的10位
number=number+random.choice(string.digits)#string.digits 返回'0123456789'
return number
#年龄
def Age():
return str(random.randint(1,85))#年龄在1-85岁之间
#邮箱
def Email():
email=''
#邮箱的结尾
ending = ["@qq.com", "@163.com", "@126.com", "@hotmail.com", "@gmail.com"]
#随机选择邮箱的长度
for i in range(random.randint(6,12)):
email=email+random.choice(string.ascii_letters+string.digits)
email=email+random.choice(ending)
return email
#将信息输入到文本之中去
def Input(n):
f=open("demo04.txt","w")
for i in range(n):#n表示多少条数据
message=list(getName()+" "+sex()+" "+Age()+" "+phoneNumber()+' '+Email()+"\n")
f.writelines(message) #利用writelines写入数据
# f.writelines("\n") #进行换行
f.close()
#读取文本中的信息
def read():
f=open("demo04.txt","r")
for line in f: #逐行读内容
print(line)
f.close()
n=200
Input(n)
read()
C:\Users\23046\AppData\Local\Programs\Python\Python38\python.exe D:\Study\Python\python_test\demo05\demo04.py
姜花分生 女 52 14454110897 e8HzShXZz@126.com
朱传精 男 9 10105531960 7XRaylHr6@163.com
高加由看 男 4 10029098070 nDm50jXTlZ@hotmail.com
许她千 男 18 15360277706 XjC3reX@qq.com
金演兰 女 59 14572419622 a120NRos4IYA@hotmail.com
钱社决吃 女 23 19168679632 WFxLtd@gmail.com
丁断格 男 35 14786914658 0cmgyhN@hotmail.com
覃官北 女 59 14507577693 UX1vJKY@hotmail.com
范每学管 女 2 10377883262 UGB6xGzVfmSB@126.com
郝住原 男 43 15509944052 HUzUhY1pIxqS@qq.com
段西 男 17 12013628185 o0C8keW7es@gmail.com
汤算四风 男 82 19910884546 TwJs10lTNuXb@126.com
金福元 女 63 11788718562 kWFM31Oj6aR@126.com
罗需社 女 25 11692045639 Cuh2REj@126.com
贾入 女 40 13341899223 EzUuaKQV@gmail.com
田制点么 男 81 16504297776 6EgzmnJHVH@qq.com
戴则 男 59 16414180806 Octy5Bpn@hotmail.com
钟需諣近 女 82 16255056547 HL3AOhobHo@gmail.com
江小 男 80 17734550864 T626hD@163.com
邓孩穿 女 85 13018750936 9I21HK@qq.com
徐口 男 53 17355037271 mWCv7aY8@gmail.com
卢事答话 女 36 17846937199 5mL38v2hV2@gmail.com
魏久转于 男 68 12408835257 iKH7gVzWblbr@126.com
贺部 女 25 17355209750 qqVTrXStIEns@gmail.com
曹就中 女 32 17168310008 tm5NFnPH@hotmail.com
曾司及西 男 10 17349120177 qky4AMHMTS7@163.com
武些公至 男 50 15383351825 Yf1px0NKZ9@126.com
吕准火头 女 42 19954596719 OXtA9Dqaa@hotmail.com
朱球名度 男 77 12264472292 wNWFgx3D@126.com
邓队电 女 13 11604158824 5ehWUoGlI@hotmail.com
郭得她 男 60 11845428838 7pVwBm0QAPj@hotmail.com
雷音要 男 59 14138635371 Sl9W9yjqT@qq.com
戴事只 男 64 11290469446 WvZfNkkg2M9@126.com
曾基切 女 38 13663951900 q1kpDuVx32@163.com
莫好通社 女 63 12536177156 7hH9zCCl@gmail.com
覃然近 女 60 13934750101 LjtJSljeY@qq.com
杨气数 女 62 18285823713 yYprNaRmw@126.com
邹罗 男 33 13102606172 MDMc8U@gmail.com
顾候 女 50 15118478071 uHMmDuqdtr@qq.com
郭些 女 23 12536421077 Perbt1f8szqH@qq.com
宋称利 男 46 10448050870 OBjQija6vZe@qq.com
魏似 女 34 16416473790 z7MAniXi@126.com
史痛 女 44 19368903538 CH7xG1@gmail.com
谭深听 女 2 15360382769 WidnNTzOYh@hotmail.com
徐手酒德 女 85 15808054222 aGbRtbsdK@qq.com
韦送欢 女 68 16739437641 c3Z2Rx@hotmail.com
苏个会 女 18 15083795984 VTvmnqB3@gmail.com
于惊 女 74 18726839014 Z1LJiOb@hotmail.com
蔡各始志 女 52 13098151916 PdbEP9aF@163.com
吴流 女 71 15766553483 d1lL2geSYO@163.com
秦失作亲 男 19 14708000871 4oClTj3npu3@126.com
赵候 男 46 10949949351 lBPHNpw@hotmail.com
袁妈路取 女 21 16432636454 Y0PEYU@hotmail.com
卢的 男 16 17867773948 IL40ltj@126.com
邱读愿 男 35 18606375289 qV8gMdQRyly@gmail.com
韩做发诉 男 13 14834134477 HIzo2k@gmail.com
徐传 男 13 16449752682 wj1tO74M6i@163.com
刘义其世 男 73 17431931236 ZlZgPRBG20Fc@163.com
金话望 女 3 17347776478 vn6foYnS@163.com
陈定 男 70 11109221434 sGB7Xa@hotmail.com
沈周识 男 60 13873647285 aJXAlX@126.com
韩火很军 男 76 19359478204 ALFf3qW5@gmail.com
潘爸力 女 54 11260475506 OmGU55Mnj@gmail.com
田准功开 男 10 19493105231 ZWzv0r5n@gmail.com
冯息关 女 66 13053015943 wil6GcXMc@qq.com
石似期 男 19 17355894742 33p1sJnoW7q@hotmail.com
魏痛 男 9 12072483011 MKkRbfC0mxFT@hotmail.com
余三发 女 24 12220314685 8TGbNEW2@qq.com
程决清 女 10 18932045724 IduGLUWTxZ4@hotmail.com
许此 女 35 13848893656 KvkymyB6E@163.com
陈父告 男 53 10857540589 0DKNcI8U4@gmail.com
白及直布 女 23 10884744431 lYYCVR8qCwx4@hotmail.com
任分几保 男 77 19009988133 9noD3OCxVkZ@163.com
陈风 女 11 13961663351 oE1vmc@163.com
朱大任活 女 81 18720434591 REnjXAZr@126.com
傅谈吗 女 64 12941317137 CR1A3pzl2@hotmail.com
胡吧毛 女 63 18540360661 Auq6gr6@163.com
何何特日 女 81 14140453240 amCFdNha9D9@hotmail.com
李单 男 36 16743934106 yHl8PtClpw7@gmail.com
曾难风百 女 67 18168309992 zczTYf3@qq.com
秦两士 男 41 13110340451 XGVhspftJa8c@hotmail.com
顾任身北 男 37 15054197941 GO4shCLhOT@hotmail.com
江动何也 女 70 19072428907 Ap5wCBNI2OjT@qq.com
谭没 男 2 17419603903 wFQTkEfPOn@163.com
顾放 女 29 16160824844 na2FHCS@gmail.com
胡第仅应 男 7 19391462007 CpYIXhtPh@hotmail.com
白后球是 女 5 11393429557 BlH2j8EC@gmail.com
罗与生己 男 59 11213566214 h783qW4@126.com
陈制日条 女 33 15234806798 MW7lfkmhmyX@gmail.com
余容 男 28 15734600586 sW4MP1zyV@163.com
梁亲官 男 38 12199615352 zHqdCwR4f2@gmail.com
万本 男 42 19393760674 TuR90B3ttVF@126.com
董气运 男 71 11974842971 4YQRVZ8@hotmail.com
廖即 女 71 11835820437 XCd0gnDOyZUZ@qq.com
覃口该转 男 65 10287307424 dKDDuYh@163.com
陆苦无观 女 22 18900274622 8n2zgvB@hotmail.com
吕演独双 男 15 18375485889 BoiZVi18KgF@gmail.com
秦球争 男 44 10310726489 3fIUFTsu@163.com
彭另绝 男 67 14059405327 RlxZoIG@gmail.com
王早全 女 70 14881165532 YDK0HiikRj@gmail.com
钟争 男 10 14825994186 HrFsSPtO@hotmail.com
石点画 女 46 10130718021 hBTbZjVAkX@gmail.com
叶尔 女 60 16875912985 lkqUK6@gmail.com
万通望 男 83 13081799610 sDTQkLbk@126.com
杜全 女 25 11831102106 T15jugNg@qq.com
林岁一看 男 10 12102138379 ninmCGK@gmail.com
彭同合 女 66 12096450139 j5gYfZkyY@163.com
尹它整 女 80 13053785989 W1eYw9cp4K9@qq.com
任包 女 21 13820290351 umuQj3e@163.com
韩等 女 41 19617114662 B8KX2R@163.com
卢法我 男 84 19546177976 XEmp60rxJ7E@126.com
胡战小 女 67 18109322843 uknaWcJ6C@gmail.com
尹而 男 17 12967402694 5vys4iAw75ed@163.com
廖论光从 男 66 15067304886 wVqzPgD3OG@hotmail.com
侯知车月 女 48 10670688394 QAkjah@qq.com
侯师希风 男 79 11944366887 jkdpYD@126.com
顾南 男 50 13612039532 BMIUAtnW6@hotmail.com
贾马穿 女 73 11613317134 KN3ZMDPt@qq.com
史头眼可 女 77 14810304537 BnISYJVBP@gmail.com
钟可 男 7 12748619928 3rdw9TSfTsHA@126.com
戴才 女 48 19882165615 kkHua9TLx@gmail.com
史由 男 82 16135770678 slrmiWz@qq.com
曹收 男 44 16612386516 IYOIHC8wI@gmail.com
邹人 女 79 16291127167 mfSZMT3tCSw@gmail.com
王不实再 男 54 10426748415 YiIGaR0@hotmail.com
陈息 男 18 13667836315 agZcl7@126.com
魏些 男 7 14510650538 FJ6pEOwdJsg@gmail.com
莫早科海 女 29 14163256163 GlEabm9tHOmj@gmail.com
徐静句 女 42 15695649675 LIej3oVp@126.com
叶她远望 男 59 15017676826 LPntIYU@hotmail.com
钟米候 女 77 12776407746 2LhxaFlCUx@qq.com
魏至华斯 男 61 13264619181 a5t05gcyyX88@qq.com
段房 男 31 10688134513 8ZTy09Xl@163.com
龚最朋 女 41 11052680758 hc2JPpY@gmail.com
潘且讲 女 1 18828405162 j47jjjf@163.com
黎加随带 女 18 15193054342 FBFLAwVqC@163.com
江刻物无 女 18 19886980309 GkunZ3e9dpuR@126.com
薛眼 男 19 16106514450 9tCYrZ@hotmail.com
万格领何 女 73 17531914375 jzbj31m@hotmail.com
蔡候开第 女 2 18597224819 HxI4CfqX8@qq.com
曹象回则 男 27 16545598204 a2W39WBr@qq.com
杜定山 男 1 13938773207 QPTcfVE@gmail.com
程果球 男 55 13177659937 I2enqpjFqcBV@163.com
马活被仅 男 44 19852931950 fJ5e8r8fp@hotmail.com
邓产 男 24 11712592915 dqg2ubNESb@126.com
孔类学青 男 32 17650242862 H2zORi@gmail.com
金流定很 男 69 10620434279 CC66qyC3KC7t@gmail.com
邹行热 男 44 10080158347 rqjN2zG@qq.com
田精情 女 6 15160802419 ISaiUF4pcY7@qq.com
魏就紧 男 4 10297253300 lEEDkpr2@163.com
周也 男 7 15887309362 e9lrjc0@qq.com
邹流道可 女 17 17088015193 lZb9WCSSp3Ob@hotmail.com
韩容业 女 45 19057333750 HaSZ3XHOo5@qq.com
曹处你最 女 29 16567428349 R27JJfRGP83i@gmail.com
曾则起 男 57 18077140287 L3RUCf6a@qq.com
雷公 女 65 19168636483 OpvBcOMl@163.com
邓火 女 22 19443005664 0nSkPb1b@qq.com
黄欢历 男 75 14144076236 Nh7CIy0KuzSj@163.com
王化量 男 81 18887602943 QD1v95@gmail.com
莫诉称精 男 68 16365765373 xODCohMTt3@163.com
邵妻 男 24 16477767408 X93q9CW@163.com
朱十她 女 9 16475951590 LlsNWZH@163.com
夏岁 女 8 11323155821 0GZ1BT0ruUTJ@163.com
莫钟产 女 10 13926885153 KSn5oZKFc@163.com
陶制位 女 35 18058070586 DNBZJEWE@gmail.com
程请 男 42 19026097683 yFrbZxv6fgWJ@hotmail.com
陆近 男 73 18349124909 DtqgwPaOwoG@126.com
严妻神 男 18 11913473910 XsjCbkFB1f@hotmail.com
韩似 女 71 14533717609 hfi4LhEAbYnu@163.com
毛几妈达 男 63 11677260756 ts8EEKeB@163.com
夏认 男 15 19941049589 gobsWxeZO@126.com
廖作 男 29 17841241667 wiUOivIIja@gmail.com
马断 男 3 18284708286 vBnm8QbDiM7J@qq.com
赵息 女 66 11708271628 HUH9AG@163.com
林建 女 54 15591327606 qgI5scAF@qq.com
阎需言 女 60 13409875027 ZQiNMy@gmail.com
杜句 女 60 16841598258 4l62BtBZ3@qq.com
武些时最 男 1 12263387158 V55y2Gps3hJ@gmail.com
吴总 女 71 10141273219 jDMPRU@gmail.com
向金 女 79 13173971413 gWilaE@gmail.com
蒋古进约 男 31 11316084542 EPl3FS2d9Ra@gmail.com
赵答故市 女 51 15252654656 5yowZnqlZXA@qq.com
于夫今 女 79 19588343025 ggM6LZB@126.com
覃活三早 女 69 13780163858 u41NsCf67@126.com
杨常 女 45 10235158565 P8yXtqk3En29@gmail.com
尹认品制 男 83 12622097777 oBRj1wx@126.com
何和品 男 75 13956682478 ro45KMWO9E@hotmail.com
严钟 女 49 18802370371 PECXegtC1gV@gmail.com
石各所 女 20 13868433322 fi71jpmu3iKK@gmail.com
郑至象形 男 21 15249244798 xoLT7RyL@gmail.com
董走 女 21 10581184258 wRffOfd4Gkb@163.com
姜样晚 女 51 14841854441 qNAFCm@gmail.com
卢请口 女 14 10448378365 TwI6oXa@163.com
杜精 女 76 11457656539 J6oeP7mX5@163.com
陈晚比 女 5 15233618873 DZ1MowD0b@gmail.com
许主使成 男 43 13696800464 47Q7geKdjH@163.com
熊决毛 女 30 14951881707 7vaUKcTP0L7B@gmail.com
毛读 女 28 12187810996 WOTdbIF9@126.com
阎口 女 54 16959868707 J77s6kc1hS@hotmail.com
林照高比 女 62 17320139407 xNbfMc@gmail.com
进程已结束,退出代码0
5、编写一个程序 demo.py,要求运行该程序后,生成 demo_new.py 文件,其中内容与demo.py 一样,只是在每一行的后面加上行号。要求行号以#开始,并且所有行的#符号垂直对齐。
6、磁盘垃圾文件清理器
编写程序,实现磁盘垃圾文件清理功能。要求程序运行时,通过命令行参数指定要清理的文件夹,然后删除该文件夹及其子文件夹中所有扩展名为 tmp、log、obj、txt 以及大小为 0 的文件
7、Excel文件成绩处理
假设某学校所有课程每学期允许多次考试,学生可随时参加考试,系统自动将每次成绩添加到 Excel 文件(包含 3 列:姓名,课程,成绩)中,现期末要求统计所有学生每门课程的最高成绩。
编写程序,模拟生成若干同学的成绩并写入 Excel 文件,其中学生姓名和课程名称均
可重复,也就是允许出现同一门课程的多次成绩,最后统计所有学生每门课程的最高成绩,并写入新的 Excel 文件。
#encoding=gbk
"""
7、Excel文件成绩处理
假设某学校所有课程每学期允许多次考试,学生可随时参加考试,系统自动将每次成绩添加到 Excel 文件(包含 3 列:姓名,课程,成绩)中,现期末要求统计所有学生每门课程的最高成绩。
编写程序,模拟生成若干同学的成绩并写入 Excel 文件,其中学生姓名和课程名称均
可重复,也就是允许出现同一门课程的多次成绩,最后统计所有学生每门课程的最高成绩,并写入新的 Excel 文件。
pip install openpyxl
"""
import openpyxl
import random
def autoGet(fileName):
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(['姓名', '课程', '成绩'])
first = tuple('王李张刘陈杨黄赵吴周徐孙马朱胡郭何高林罗郑梁谢宋唐许韩冯邓曹彭曾萧田董潘袁于蒋蔡余杜叶程苏魏吕丁任沈姚卢姜崔钟谭陆汪范金石廖贾夏韦傅方白邹孟熊秦邱江尹薛阎段雷侯龙史陶黎贺顾毛郝龚邵万钱严覃武戴莫孔向汤')
middle = tuple('"\u7684\u4e00\u662f\u4e86\u6211\u4e0d\u4eba\u5728\u4ed6\u6709\u8fd9\u4e2a\u4e0a\u4eec\u6765"\
"\u5230\u65f6\u5927\u5730\u4e3a\u5b50\u4e2d\u4f60\u8bf4\u751f\u56fd\u5e74\u7740\u5c31\u90a3"\
"\u548c\u8981\u5979\u51fa\u4e5f\u5f97\u91cc\u540e\u81ea\u4ee5\u4f1a\u5bb6\u53ef\u4e0b\u800c"\
"\u8fc7\u5929\u53bb\u80fd\u5bf9\u5c0f\u591a\u7136\u4e8e\u5fc3\u5b66\u4e48\u4e4b\u90fd\u597d"\
"\u770b\u8d77\u53d1\u5f53\u6ca1\u6210\u53ea\u5982\u4e8b\u628a\u8fd8\u7528\u7b2c\u6837\u9053"\
"\u60f3\u4f5c\u79cd\u5f00\u7f8e\u603b\u4ece\u65e0\u60c5\u5df1\u9762\u6700\u5973\u4f46\u73b0"\
"\u524d\u4e9b\u6240\u540c\u65e5\u624b\u53c8\u884c\u610f\u52a8\u65b9\u671f\u5b83\u5934\u7ecf"\
"\u957f\u513f\u56de\u4f4d\u5206\u7231\u8001\u56e0\u5f88\u7ed9\u540d\u6cd5\u95f4\u65af\u77e5"\
"\u4e16\u4ec0\u4e24\u6b21\u4f7f\u8eab\u8005\u88ab\u9ad8\u5df2\u4eb2\u5176\u8fdb\u6b64\u8bdd"\
"\u5e38\u4e0e\u6d3b\u6b63\u611f\u89c1\u660e\u95ee\u529b\u7406\u5c14\u70b9\u6587\u51e0\u5b9a"\
"\u672c\u516c\u7279\u505a\u5916\u5b69\u76f8\u897f\u679c\u8d70\u5c06\u6708\u5341\u5b9e\u5411"\
"\u58f0\u8f66\u5168\u4fe1\u91cd\u4e09\u673a\u5de5\u7269\u6c14\u6bcf\u5e76\u522b\u771f\u6253"\
"\u592a\u65b0\u6bd4\u624d\u4fbf\u592b\u518d\u4e66\u90e8\u6c34\u50cf\u773c\u7b49\u4f53\u5374"\
"\u52a0\u7535\u4e3b\u754c\u95e8\u5229\u6d77\u53d7\u542c\u8868\u5fb7\u5c11\u514b\u4ee3\u5458"\
"\u8bb8\u7a1c\u5148\u53e3\u7531\u6b7b\u5b89\u5199\u6027\u9a6c\u5149\u767d\u6216\u4f4f\u96be"\
"\u671b\u6559\u547d\u82b1\u7ed3\u4e50\u8272\u66f4\u62c9\u4e1c\u795e\u8bb0\u5904\u8ba9\u6bcd"\
"\u7236\u5e94\u76f4\u5b57\u573a\u5e73\u62a5\u53cb\u5173\u653e\u81f3\u5f20\u8ba4\u63a5\u544a"\
"\u5165\u7b11\u5185\u82f1\u519b\u5019\u6c11\u5c81\u5f80\u4f55\u5ea6\u5c71\u89c9\u8def\u5e26"\
"\u4e07\u7537\u8fb9\u98ce\u89e3\u53eb\u4efb\u91d1\u5feb\u539f\u5403\u5988\u53d8\u901a\u5e08"\
"\u7acb\u8c61\u6570\u56db\u5931\u6ee1\u6218\u8fdc\u683c\u58eb\u97f3\u8f7b\u76ee\u6761\u5462"\
"\u75c5\u59cb\u8fbe\u6df1\u5b8c\u4eca\u63d0\u6c42\u6e05\u738b\u5316\u7a7a\u4e1a\u601d\u5207"\
"\u600e\u975e\u627e\u7247\u7f57\u94b1\u7d36\u5417\u8bed\u5143\u559c\u66fe\u79bb\u98de\u79d1"\
"\u8a00\u5e72\u6d41\u6b22\u7ea6\u5404\u5373\u6307\u5408\u53cd\u9898\u5fc5\u8be5\u8bba\u4ea4"\
"\u7ec8\u6797\u8bf7\u533b\u665a\u5236\u7403\u51b3\u7aa2\u4f20\u753b\u4fdd\u8bfb\u8fd0\u53ca"\
"\u5219\u623f\u65e9\u9662\u91cf\u82e6\u706b\u5e03\u54c1\u8fd1\u5750\u4ea7\u7b54\u661f\u7cbe"\
"\u89c6\u4e94\u8fde\u53f8\u5df4\u5947\u7ba1\u7c7b\u672a\u670b\u4e14\u5a5a\u53f0\u591c\u9752"\
"\u5317\u961f\u4e45\u4e4e\u8d8a\u89c2\u843d\u5c3d\u5f62\u5f71\u7ea2\u7238\u767e\u4ee4\u5468"\
"\u5427\u8bc6\u6b65\u5e0c\u4e9a\u672f\u7559\u5e02\u534a\u70ed\u9001\u5174\u9020\u8c08\u5bb9"\
"\u6781\u968f\u6f14\u6536\u9996\u6839\u8bb2\u6574\u5f0f\u53d6\u7167\u529e\u5f3a\u77f3\u53e4"\
"\u534e\u8ae3\u62ff\u8ba1\u60a8\u88c5\u4f3c\u8db3\u53cc\u59bb\u5c3c\u8f6c\u8bc9\u7c73\u79f0"\
"\u4e3d\u5ba2\u5357\u9886\u8282\u8863\u7ad9\u9ed1\u523b\u7edf\u65ad\u798f\u57ce\u6545\u5386"\
"\u60ca\u8138\u9009\u5305\u7d27\u4e89\u53e6\u5efa\u7ef4\u7edd\u6811\u7cfb\u4f24\u793a\u613f"\
"\u6301\u5343\u53f2\u8c01\u51c6\u8054\u5987\u7eaa\u57fa\u4e70\u5fd7\u9759\u963f\u8bd7\u72ec"\
"\u590d\u75db\u6d88\u793e\u7b97\u4e49\u7adf\u786e\u9152\u9700\u5355\u6cbb\u5361\u5e78\u5170"\
"\u5ff5\u4e3e\u4ec5\u949f\u6015\u5171\u6bdb\u53e5\u606f\u529f\u5b98\u5f85\u7a76\u8ddf\u7a7f"')
last = tuple('"\u7684\u4e00\u662f\u4e86\u6211\u4e0d\u4eba\u5728\u4ed6\u6709\u8fd9\u4e2a\u4e0a\u4eec\u6765"\
"\u5230\u65f6\u5927\u5730\u4e3a\u5b50\u4e2d\u4f60\u8bf4\u751f\u56fd\u5e74\u7740\u5c31\u90a3"\
"\u548c\u8981\u5979\u51fa\u4e5f\u5f97\u91cc\u540e\u81ea\u4ee5\u4f1a\u5bb6\u53ef\u4e0b\u800c"\
"\u8fc7\u5929\u53bb\u80fd\u5bf9\u5c0f\u591a\u7136\u4e8e\u5fc3\u5b66\u4e48\u4e4b\u90fd\u597d"\
"\u770b\u8d77\u53d1\u5f53\u6ca1\u6210\u53ea\u5982\u4e8b\u628a\u8fd8\u7528\u7b2c\u6837\u9053"\
"\u60f3\u4f5c\u79cd\u5f00\u7f8e\u603b\u4ece\u65e0\u60c5\u5df1\u9762\u6700\u5973\u4f46\u73b0"\
"\u524d\u4e9b\u6240\u540c\u65e5\u624b\u53c8\u884c\u610f\u52a8\u65b9\u671f\u5b83\u5934\u7ecf"\
"\u957f\u513f\u56de\u4f4d\u5206\u7231\u8001\u56e0\u5f88\u7ed9\u540d\u6cd5\u95f4\u65af\u77e5"\
"\u4e16\u4ec0\u4e24\u6b21\u4f7f\u8eab\u8005\u88ab\u9ad8\u5df2\u4eb2\u5176\u8fdb\u6b64\u8bdd"\
"\u5e38\u4e0e\u6d3b\u6b63\u611f\u89c1\u660e\u95ee\u529b\u7406\u5c14\u70b9\u6587\u51e0\u5b9a"\
"\u672c\u516c\u7279\u505a\u5916\u5b69\u76f8\u897f\u679c\u8d70\u5c06\u6708\u5341\u5b9e\u5411"\
"\u58f0\u8f66\u5168\u4fe1\u91cd\u4e09\u673a\u5de5\u7269\u6c14\u6bcf\u5e76\u522b\u771f\u6253"\
"\u592a\u65b0\u6bd4\u624d\u4fbf\u592b\u518d\u4e66\u90e8\u6c34\u50cf\u773c\u7b49\u4f53\u5374"\
"\u52a0\u7535\u4e3b\u754c\u95e8\u5229\u6d77\u53d7\u542c\u8868\u5fb7\u5c11\u514b\u4ee3\u5458"\
"\u8bb8\u7a1c\u5148\u53e3\u7531\u6b7b\u5b89\u5199\u6027\u9a6c\u5149\u767d\u6216\u4f4f\u96be"\
"\u671b\u6559\u547d\u82b1\u7ed3\u4e50\u8272\u66f4\u62c9\u4e1c\u795e\u8bb0\u5904\u8ba9\u6bcd"\
"\u7236\u5e94\u76f4\u5b57\u573a\u5e73\u62a5\u53cb\u5173\u653e\u81f3\u5f20\u8ba4\u63a5\u544a"\
"\u5165\u7b11\u5185\u82f1\u519b\u5019\u6c11\u5c81\u5f80\u4f55\u5ea6\u5c71\u89c9\u8def\u5e26"\
"\u4e07\u7537\u8fb9\u98ce\u89e3\u53eb\u4efb\u91d1\u5feb\u539f\u5403\u5988\u53d8\u901a\u5e08"\
"\u7acb\u8c61\u6570\u56db\u5931\u6ee1\u6218\u8fdc\u683c\u58eb\u97f3\u8f7b\u76ee\u6761\u5462"\
"\u75c5\u59cb\u8fbe\u6df1\u5b8c\u4eca\u63d0\u6c42\u6e05\u738b\u5316\u7a7a\u4e1a\u601d\u5207"\
"\u600e\u975e\u627e\u7247\u7f57\u94b1\u7d36\u5417\u8bed\u5143\u559c\u66fe\u79bb\u98de\u79d1"\
"\u8a00\u5e72\u6d41\u6b22\u7ea6\u5404\u5373\u6307\u5408\u53cd\u9898\u5fc5\u8be5\u8bba\u4ea4"\
"\u7ec8\u6797\u8bf7\u533b\u665a\u5236\u7403\u51b3\u7aa2\u4f20\u753b\u4fdd\u8bfb\u8fd0\u53ca"\
"\u5219\u623f\u65e9\u9662\u91cf\u82e6\u706b\u5e03\u54c1\u8fd1\u5750\u4ea7\u7b54\u661f\u7cbe"\
"\u89c6\u4e94\u8fde\u53f8\u5df4\u5947\u7ba1\u7c7b\u672a\u670b\u4e14\u5a5a\u53f0\u591c\u9752"\
"\u5317\u961f\u4e45\u4e4e\u8d8a\u89c2\u843d\u5c3d\u5f62\u5f71\u7ea2\u7238\u767e\u4ee4\u5468"\
"\u5427\u8bc6\u6b65\u5e0c\u4e9a\u672f\u7559\u5e02\u534a\u70ed\u9001\u5174\u9020\u8c08\u5bb9"\
"\u6781\u968f\u6f14\u6536\u9996\u6839\u8bb2\u6574\u5f0f\u53d6\u7167\u529e\u5f3a\u77f3\u53e4"\
"\u534e\u8ae3\u62ff\u8ba1\u60a8\u88c5\u4f3c\u8db3\u53cc\u59bb\u5c3c\u8f6c\u8bc9\u7c73\u79f0"\
"\u4e3d\u5ba2\u5357\u9886\u8282\u8863\u7ad9\u9ed1\u523b\u7edf\u65ad\u798f\u57ce\u6545\u5386"\
"\u60ca\u8138\u9009\u5305\u7d27\u4e89\u53e6\u5efa\u7ef4\u7edd\u6811\u7cfb\u4f24\u793a\u613f"\
"\u6301\u5343\u53f2\u8c01\u51c6\u8054\u5987\u7eaa\u57fa\u4e70\u5fd7\u9759\u963f\u8bd7\u72ec"\
"\u590d\u75db\u6d88\u793e\u7b97\u4e49\u7adf\u786e\u9152\u9700\u5355\u6cbb\u5361\u5e78\u5170"\
"\u5ff5\u4e3e\u4ec5\u949f\u6015\u5171\u6bdb\u53e5\u606f\u529f\u5b98\u5f85\u7a76\u8ddf\u7a7f"')
# 课程名称
subjects = ('语文', '数学', '英语','化学')
for i in range(2000):
line = []
r = random.randint(1, 100)
name = random.choice(first)
# 按一定概率生成只有两个字的中文名字
if r > 50:
name = name + random.choice(middle)
name = name + random.choice(last)
# 依次生成姓名、课程名称和成绩
line.append(name)
line.append(random.choice(subjects))
line.append(random.randint(0, 100))
sheet.append(line)
# 保存数据,生成excel
wb.save(fileName)
def getMaxScore(oldfileName, newfilrName):
wb = openpyxl.load_workbook(oldfileName)
final_wb = openpyxl.Workbook() # 创建一个新的excel工作簿对象用来存储学生各科目最高成绩
start_sheet = wb.active # 开始自动生成的文件
final_sheet = final_wb.active
final_sheet.title = '学生的各科成绩'
final_sheet.append(['姓名', '课程', '最高分'])
stuGrade = {} # 创建一个记录全校学生成绩的字典
for i in range(2, start_sheet.max_row + 1):
stuName = start_sheet['A' + str(i)].value # 获取学生名字
lesName = start_sheet['B' + str(i)].value # 获取课程名
score = start_sheet['C' + str(i)].value # 获取对应的分数
# 判断stuGrade中是否存有该学生
if stuName in stuGrade:
stuGrade[stuName]
else:
stuGrade[stuName] = {}
# 获取最大分数,先判断该学生下的成绩字典中是否存有这门课程
if lesName in stuGrade[stuName]:
if score > stuGrade[stuName][lesName]:
stuGrade[stuName][lesName] = score
else:
stuGrade[stuName][lesName] = score
for student in stuGrade:
for lesson, score in stuGrade[student].items():
final_sheet.append([student, lesson, score])
final_wb.save(newfilrName)
if __name__ == '__main__':
oldfile = '全校学生成绩.xlsx'
newfile = '学生每门课程的最高成绩.xlsx'
autoGet(oldfile)
getMaxScore(oldfile, newfile)
8、Word文件操作
编写程序,读取 Word 文件中的所有段落文本,然后输出其中所有红色的文本和加粗的文本以及同时具有这两种属性的文本
#encoding=gbk
"""
8、Word文件操作
编写程序,读取 Word 文件中的所有段落文本,然后输出其中所有红色的文本和加粗的文本以及同时具有这两种属性的文本
pip install python-docx -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
"""
from docx import Document
from docx.shared import RGBColor
boldText = []
redText = []
doc = Document('test.docx')
for p in doc.paragraphs:
for r in p.runs:
# 加粗字体
if r.bold:
boldText.append(r.text)
# 红色字体
if r.font.color.rgb == RGBColor(255,0,0):
redText.append(r.text)
result = {'红色的文本': redText, '加粗的文本': boldText, '红色及加粗的文本': set(redText) & set(boldText)}
# 输出结果
for title in result.keys():
print(title.center(30, '='))
for text in result[title]:
print(text)
心得体会
练习了python对文件的基本操作(word,Excel)