接上文 编写Python参考手册速查软件(一)https://developer.aliyun.com/article/1618069
添加条目模块分为两部分:
增加函数名文件源码如下:
#_*_coding:utf-8_*_
# 作者 :liuxiaowei
# 创建时间 :3/18/22 6:44 PM
# 文件 :增加名字文件条目.py
# IDE :PyCharm
import csv
# 定义一个添加字典值(函数名列表)函数,参数为首字母作为键,函数名为对应的列表值
def add_Words(letter, words_Dict, words):
if letter.lower() in words_Dict.keys():
for key in words_Dict.keys():
if letter.lower() == key:
words_Dict[letter].append(words)
else:
print('请核实输入的信息!')
# 定义一个最后的整理函数,一旦需要修改函数描述文件是需要调用这个函数
def final_csv():
py_dict = {
}
with open('Py_String_Name.csv', mode='r') as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
# 把读出来的csv文件内容转成列表
row_lst = row[1].strip('[]').replace('\'', '').split(',')
# 临时创建一个空列表,添加去掉空格的内容
row1 = []
for i in row_lst:
# 去掉列表中内容的前空格
row1.append(i.strip(' '))
py_dict[row[0]] = row1
with open('Py_String_Name.csv', mode='w') as fw:
writer = csv.writer(fw, delimiter=',')
for key in py_dict.keys():
writer.writerow([key, py_dict[key]])
return py_dict
# 生成csv文件
def create_Csv_desc(Pydict):
# 生成指定文件名的csv文件
with open('Py_String_Name.csv', mode = 'w', newline='') as f:
writer = csv.writer(f, delimiter = ',')
for key in Pydict.keys():
writer.writerow([key, Pydict[key]])
# 修改函数描述csv文件内容的函数
def modi_desc_csv():
desc_Dict = final_csv()
Done = True
# 循环操作,连续输入数据
while Done:
# 输入的首字母用于查找相应的字典键值对
letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
# 如果输入quit,退出程序,生成csv文件
if letter1 == 'quit':
create_Csv_desc(desc_Dict)
break
else:
# 输入函数的描述内容
contents = input('\n请输入描述内容:')
# 调用添加函数名描述内容的函数,参数为首字母,函数描述字典,描述内容
add_Words(letter1, desc_Dict, contents)
if __name__ == "__main__":
modi_desc_csv()
增加语法描述文件源码如下:
#_*_coding:utf-8_*_
# 作者 :liuxiaowei
# 创建时间 :3/18/22 2:51 PM
# 文件 :增加某个描述条目.py
# IDE :PyCharm
import csv
# 定义一个函数添加描述列表,content为描述的内容作为字典值列表的内容,desc_Dict为描述字典,首字母为键
def add_Desc(letter, desc_Dict, content):
if letter.lower() in desc_Dict.keys():
for key in desc_Dict.keys():
# 输入的内容不能为空
if letter.lower() == key and content != '':
desc_Dict[letter].append(content)
else:
print('请核实输入的信息!')
# 定义一个最后的整理函数,一旦需要修改函数描述文件是需要调用这个函数
def final_csv():
py_dict = {
}
with open('内置函数名称文件.csv', mode='r') as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
# 把读出来的csv文件内容转成列表
row_lst = row[1].strip('[]').replace('\'', '').split(',')
# 临时创建一个空列表,添加去掉空格的内容
row1 = []
for i in row_lst:
# 去掉列表中内容的前空格
row1.append(i.strip(' '))
py_dict[row[0]] = row1
with open('Py_func_desc.csv', mode='w') as fw:
writer = csv.writer(fw, delimiter=',')
for key in py_dict.keys():
writer.writerow([key, py_dict[key]])
return py_dict
def create_Csv_desc(Pydict):
# 生成指定文件名的csv文件
with open('内置函数名称描述文件.csv', mode = 'w', newline='') as f:
writer = csv.writer(f, delimiter = ',')
for key in Pydict.keys():
writer.writerow([key, Pydict[key]])
# 修改函数描述csv文件内容的函数
def modi_desc_csv():
desc_Dict = final_csv()
Done = True
# 循环操作,连续输入数据
while Done:
# 输入的首字母用于查找相应的字典键值对
letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
# 如果输入quit,退出程序,生成csv文件
if letter1 == 'quit':
create_Csv_desc(desc_Dict)
break
else:
# 输入函数的描述内容
contents = input('\n请输入描述内容:')
# 调用添加函数名描述内容的函数,参数为首字母,函数描述字典,描述内容
add_Words(letter1, desc_Dict, contents)
if __name__ == "__main__":
modi_desc_csv()
删除某个条目的文件源码如下:
#_*_coding:utf-8_*_
# 作者 :liuxiaowei
# 创建时间 :3/18/22 1:55 PM
# 文件 :删除描述文件的某个条目内容.py
# IDE :PyCharm
import csv
# 定义一个函数添加描述列表,content为描述的内容作为字典值列表的内容,desc_Dict为描述字典,首字母为键
def del_Desc(letter, desc_Dict):
if letter.lower() in desc_Dict.keys():
for key in desc_Dict.keys():
# 输入的内容不能为空
if letter.lower() == key:
desc_Dict[letter].remove()
# 定义一个最后的整理函数,一旦需要修改函数描述文件是需要调用这个函数
def final_csv():
py_dict = {
}
with open('内置函数名称描述文件.csv', mode='r') as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
# 把读出来的csv文件内容转成列表
row_lst = row[1].strip('[]').replace('\'', '').split(',')
# 临时创建一个空列表,添加去掉空格的内容
row1 = []
for i in row_lst:
# 去掉列表中内容的前空格
row1.append(i.strip(' '))
py_dict[row[0]] = row1
with open('内置函数名称描述文件.csv', mode='w') as fw:
writer = csv.writer(fw, delimiter=',')
for key in py_dict.keys():
writer.writerow([key, py_dict[key]])
return py_dict
def create_Csv_desc(Pydict):
# 生成指定文件名的csv文件
with open('内置函数名称描述文件.csv', mode = 'w', newline='') as f:
writer = csv.writer(f, delimiter = ',')
for key in Pydict.keys():
writer.writerow([key, Pydict[key]])
# 修改函数描述csv文件内容的函数
def modi_desc_csv():
desc_Dict = final_csv()
Done = True
# 循环操作,连续输入数据
while Done:
# 输入的首字母用于查找相应的字典键值对
letter1 = input('\n请输入首字母(26个英文字母不分大小写):')
del_Desc(letter1, desc_Dict)
# 如果输入quit,退出程序,生成csv文件
if letter1 == 'quit':
create_Csv_desc(desc_Dict)
break
# else:
# # 输入函数的描述内容
# contents = input('\n请输入描述内容:')
# 调用添加函数名描述内容的函数,参数为首字母,函数描述字典,描述内容
if __name__ == "__main__":
modi_desc_csv()
手册查询主程序源码
#_*_coding:utf-8_*_
# 作者 :liuxiaowei
# 创建时间 :3/17/22 5:22 PM
# 文件 :create_Python_速查手册.py
# IDE :PyCharm
import csv
# 导入时间模块是为了输出条目的时候停顿一下,可根据自己需要是否设定
# import time
# 定义一个查找函数, choice_Num参数为选择项的数字
def find_Word(letter, choice_Num=1, dict='内置函数名称文件.csv', desc='内置函数名称描述文件.csv'):
# 判断选项,然后给(函数、列表、字典、字符串)名称和描述赋值
if choice_Num == 2:
dict, desc = '列表方法文件.csv', '列表方法描述文件.csv'
elif choice_Num == 3:
dict, desc = '字典方法名称文件.csv', '字典方法描述文件.csv'
elif choice_Num == 4:
dict, desc = '字符串方法名称文件.csv', '字符串方法描述文件.csv'
else:
pass
# 打开Py_func.csv是函数名称的csv文件,读取数据
with open(dict, mode='r') as fr:
# 实例化一个reader对象
reader = csv.reader(fr, delimiter=',')
# 根据行去查找数据
for row in reader:
if row[0] == letter and row[1] != '':
# 将读取的值转换为列表
row1_lst = row[1].strip('[]').replace('\'', '').split(',')
# 定义一个函数名的空列表
func_name_lst = []
for fun_name in row1_lst:
# 去掉列表中内容的前空格
func_name_lst.append(fun_name.strip(' '))
# 打开描述内容csv文件
with open(desc, mode='r') as fd:
reader = csv.reader(fd, delimiter=',')
for row in reader:
if row[0] == letter and row[1] != '':
# 将读取的描述内容变成列表, 去掉"'"单引号
row2_lst = row[1].strip('[]').replace('\'', '').split(',')
func_desc_lst = []
for fun_desc_name in row2_lst:
# 去掉列表中内容的前空格
func_desc_lst.append(fun_desc_name.strip(' '))
# 输出查找的函数及相应的描述内容
print(f'你查找的与首字母{letter}相关的内置函数及描述为:\n')
for i in range(len(func_name_lst)):
if func_name_lst[i] != '':
print(f'内置函数名:"{func_name_lst[i]}" 描 述为:{func_desc_lst[i]}')
# 时间函数可以根据自己需要设计
# time.sleep(2)
else:
print('没有此函数!')
# 定义一个主函数,生成主界面
def main():
print('\n')
print('==== Python知识手册速查程序 ==== ')
print('-' * 40)
print(' 1. 内置函数查询\n 2. 列表方法查询(输入a)\n 3. 字典方法查询(输入a)\n 4. 字符串方法查询(输入s)\n 5. 退 出')
print('-' * 40)
# 定义一个操作函数operation
def Operation():
# 调用界面主函数
main()
# 定义一个选择变量
choice = int(input('请输入选项:(1,2,3,4,5)'))
Done = True
# 循环操作
while Done:
# 判断选择,如果选择1
for i in range(1, 5):
if choice == i:
letter1 = input("请输入函数名称首字母(不分大小写):").lower()
find_Word(letter1, choice)
question = input('Do you want to quit?(q)').lower()
if question == 'q' or question == 'quit':
break
else:
Done = True
if choice == 5:
break
if __name__ == "__main__":
# 调用操作函数
Operation()
运行结果如下图:
备注:
此程序本人没加try: except:捕捉异常,可以自己添加,每个板块录入数据的时候,随时可以在输入首字母的时候输入quit退出。希望此程序对您所有启发和帮助。