Task01 学习笔记

阅读: 评论:0

Task01 学习笔记

Task01 学习笔记

文件读写

os包命令

下表总结了os包常用的命令:

  1. 工作目录相关命令
命令功能
os.getcwd()获取当前工作目录
os.chdir()改变当前工作目录
  1. 路径操作命令(实际上是对路径字符串的操作)
命令功能
os.path.abspath(path)将相对路径转换为绝对路径
os.path.isabs(path)判断是否为绝对路径
lpath(path,start)返回从start到path的相对路径
os.path.dirname(path)返回当前路径的目录名称
os.path.basename(path)返回当前路径的文件名称
os.path.split(FilePath)返回由目录名和文件名组成的元组
ists(path)判断是否存在path文件/文件夹
os.path.isfile(path)判断是否存在path文件
os.path.isdir(path)判断是否存在path文件夹
  1. 文件及文件夹操作
命令功能
os.makedir(newpath)创建新文件夹
size(path)返回path中文件的字节数
os.listdir(path)返回path中的文件/文件夹列表
  1. 永久删除文件和文件夹
命令功能
os.unlink(path)删除path处的文件
os.rmdir(path)删除path处的文件夹
os.rmtree(path)删除path处的文件夹(包括其中的文件和文件夹)

永久删除的文件无法从回收站恢复,因此可以考虑使用send2trash模块安全地删除文件。

变量存储

利用shelve模块可以将Python变量保存至二进制的shelf文件。shelf以类似字典的方式储存变量。

此外,可以结合pprint.pformat()函数将变量写入.py文件中,之后以模块的形式调用该变量。

组织文件

shutil模块

shutil模块中的函数可以在Python程序中复制、移动、改名和删除文件。

命令功能
py(source, destination)将source处的文件复制到路径destination处的文件夹
pytree(source, destination)将source处的文件夹复制到路径destination处的文件夹
ve(source, destination)将source处的文件/文件夹移动到路径destination

zipfile模块

zipfile模块中的函数可以创建和解压zip文件。

命令功能
zipfile.ZipFile(‘filename.zip’, ‘w’)以写模式创建一个压缩文件
newZip.write(‘filename’,‘compress_type=zipfile.ZIP_DEFLATED’)压缩指定路径的文件,添加到zip文件中
actall(path)从zip文件中解压所有文件和文件夹,放到指定目录中
act(‘filename’, path)将指定单个文件解压到指定路径的文件夹中

练习

1、已有文件以写模式打开,原来的内容会被覆盖。

2、read()将文件的全部内容读取为一个字符串,而readlines()则会逐行读取文件内容并形成字符串列表(字符串后保留换行符)。

综合练习

import random
import os# 各州首府字典
capitals = {'Alabama': 'Montgomery', 'Alaska': 'Juneau', 'Arizona': 'Phoenix','Arkansas': 'Little Rock', 'California': 'Sacramento', 'Colorado': 'Denver','Connecticut': 'Hartford', 'Delaware': 'Dover', 'Florida': 'Tallahassee','Georgia': 'Atlanta', 'Hawaii': 'Honolulu', 'Idaho': 'Boise', 'Illinois':'Springfield', 'Indiana': 'Indianapolis', 'Iowa': 'Des Moines', 'Kansas':'Topeka', 'Kentucky': 'Frankfort', 'Louisiana': 'Baton Rouge', 'Maine':'Augusta', 'Maryland': 'Annapolis', 'Massachusetts': 'Boston', 'Michigan':'Lansing', 'Minnesota': 'Saint Paul', 'Mississippi': 'Jackson', 'Missouri':'Jefferson City', 'Montana': 'Helena', 'Nebraska': 'Lincoln', 'Nevada':'Carson City', 'New Hampshire': 'Concord', 'New Jersey': 'Trenton', 'New Mexico': 'Santa Fe', 'New York': 'Albany', 'North Carolina': 'Raleigh','North Dakota': 'Bismarck', 'Ohio': 'Columbus', 'Oklahoma': 'Oklahoma City','Oregon': 'Salem', 'Pennsylvania': 'Harrisburg', 'Rhode Island': 'Providence','South Carolina': 'Columbia', 'South Dakota': 'Pierre', 'Tennessee':'Nashville', 'Texas': 'Austin', 'Utah': 'Salt Lake City', 'Vermont':'Montpelier', 'Virginia': 'Richmond', 'Washington': 'Olympia', 'West Virginia': 'Charleston', 'Wisconsin': 'Madison', 'Wyoming': 'Cheyenne'
}cap_state = list(capitals.keys())
cap_capital = list(capitals.values())# 生成试题文件夹
os.makedirs('C:\Users\LWKM\Desktop\OfficeAutomation\Task01 实验\my_test_all')
os.makedirs('C:\Users\LWKM\Desktop\OfficeAutomation\Task01 实验\my_test_all\my_problems')
os.makedirs('C:\Users\LWKM\Desktop\OfficeAutomation\Task01 实验\my_test_all\my_answers')# 生成试题集(含答案)
n_stu = 35
for i in range(n_stu):# 生成题目字典my_test = {}select = ['A', 'B', 'C', 'D'] # 选项编号# 遍历首府字典for key,values in capitals.items():# 生成选项列表choice = [values]temp = py() # 注意copy的使用ve(values)# 随机抽取3个非正确答案,填入选项列表中d(random.sample(temp,3))# 打乱顺序random.shuffle(choice)# 填入试题my_test[key] = dict(zip(choice,select)) # 这里换一下顺序,方便答案的生成# 打乱试题顺序new_state = py() # 防止原始州列表顺序被打乱random.shuffle(new_state)# 写入新试题my_test_new = {}my_answer_new = {}for st in new_state:my_test_new[st] = my_test[st]my_answer_new[st] = capitals[st]with open(f'C:\Users\LWKM\Desktop\OfficeAutomation\Task01 实验\my_test_all\my_problems\student_{i+1}.txt', 'w') as f:t = 0for key, values in my_test_new.items():t += 1f.write(f"{t}. The capital of {key} is ____n")for k,v in values.items():f.write(v+'. '+k+'n')f.write('n')with open(f'C:\Users\LWKM\Desktop\OfficeAutomation\Task01 实验\my_test_all\my_answers\student_{i+1}_', 'w') as f:s = 0for key, values in my_answer_new.items():s += 1#f.write(f"{s}. The capital of {key} is [ {my_test_new[key][values]} ]")f.write(f"{s}. {my_test_new[key][values]}")f.write('n')

本文发布于:2024-02-04 20:13:59,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170715598559248.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:学习笔记
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23