def revise_line(): # 定义修改线路的函数 num = input('请输入您要修改的线路:').strip() if check_add_line(num): show_line_all() tag = input('请确认是否继续修改线路:(1为是,0为否)\n') if tag == '1': file_path = 'D:\公交查询系统\line_info.pkl' a = input('请再次输入要修改的线路:').strip() clear_line(a) b = input('请输入经过的站点:') d = { a: {b} } if os.path.exists(file_path) and os.path.getsize(file_path): with open('line_info.pkl', 'ab') as f: pickle.dump(d, f) print('您已经修改线路成功!!') else: with open('line_info.pkl', 'wb') as fp: pickle.dump(d, fp) print("您已经修改线路成功了!!!!") else: print('您要修改的线路不存在,需要创建一个新的线路。。。') add_line()
时间: 2024-02-14 13:33:08 浏览: 74
这是一个名为 `revise_line()` 的函数,它的作用是修改地铁线路信息。在这个函数中,会要求用户输入要修改的线路名称,并检查该线路是否存在。如果该线路存在,则会输出该线路经过的站点,并要求用户确认是否要继续修改该线路。
如果用户确认要修改该线路,则会要求用户重新输入线路名称,并清空该线路的所有信息。然后,会要求用户输入该线路经过的站点,并将其保存到文件 `line_info.pkl` 中。如果该文件已经存在并且不为空,则会在文件的末尾添加新的线路信息。
如果用户要修改的线路不存在,则会输出提示信息,并调用函数 `add_line()` 来创建一个新的线路。
相关问题
def manager(): # 后台管理员界面的函数 while True: print('-' * 30) print('-----后台管理员界面-----') print('1.添加线路') print('2.删除线路') print('3.修改线路') print('4.查看所有线路') print('5.删除所有线路') print('6.退出') print('-' * 30) num = input('请做出你的选择:\n') if num == '3': revise_line() continue if num == '1': add_line() continue if num == '6': print('-' * 25) print('------菜单------') print('1.线路查询') print('2.站点查询') print('3.换乘信息') print('4.后台管理员界面') print('5.管理员的账号管理界面') print('6.退出程序') print('-' * 25) break if num == '5': clear_line_all() continue if num == '4': show_line_all() continue if num == '2': num = input('请输入你要删除的线路:\n').strip() clear_line(num) continue else: print('请重新做出你的选择...')
这段代码是一个 Python 函数,用于实现后台管理员界面的功能。具体实现如下:
- 函数 manager 通过 while 循环不断地显示后台管理员界面,并等待用户输入。
- 显示后台管理员界面时,会输出一个菜单,包含添加线路、删除线路、修改线路、查看所有线路、删除所有线路和退出功能。
- 在用户输入选择操作之后,根据不同的选择调用不同的函数,比如添加线路时调用 add_line 函数,删除线路时调用 clear_line 函数等。
- 如果用户选择退出操作,则退出循环,返回上一级菜单。
- 如果用户输入的操作不在菜单中,则提示用户重新选择。
需要注意的是,该函数的具体实现依赖于一些其他函数,比如 add_line、clear_line、clear_line_all、show_line_all 和 revise_line 等,这些函数应该在代码的其他地方进行定义。
解释下面代码:import os from config import paras para = paras() def revise_rawdata_name(para): op_dir = para.rawdata_dir save_dir = para.save_dir classes = os.listdir(op_dir) # 获取文档内所有文件 for class_name in classes: i = 1 con_dir = os.path.join(op_dir, class_name) save_path = os.path.join(save_dir, class_name) files = os.listdir(con_dir) #获取文档内所有文件 for file_name in files: # 取出路径父文件夹下各文件名 newname = f'{i:05}' (filename, extension) = os.path.splitext(file_name) str = filename.replace(filename,newname) os.rename(os.path.join(con_dir, file_name), os.path.join(save_path, str + extension)) # 添加前缀 i = i+1 def revise_name(para): ip_dir = para.rawdata_dir classes = os.listdir(ip_dir) # 获取文档内所有文件 for class_name in classes: con_dir = os.path.join(ip_dir, class_name) files = os.listdir(con_dir) #获取文档内所有文件 i = 0 for file_name in files: # 取出路径父文件夹下各文件名 (filename, extension) = os.path.splitext(file_name) newname = class_name +'_'+ str(i) os.rename(os.path.join(con_dir, file_name), os.path.join(con_dir, newname + extension)) # 添加前缀 i = i+1 # Press the green button in the gutter to run the script. if __name__ == '__main__': revise_name(para)
这段代码主要是用于修改文件名的函数。代码首先导入了`os`模块和一个名为`paras`的配置文件。然后定义了两个函数`revise_rawdata_name`和`revise_name`,并传入了一个参数`para`。
`revise_rawdata_name`函数的作用是将指定目录下的文件名进行修改,添加前缀。具体步骤如下:
1. 获取指定目录下的所有文件夹。
2. 遍历每个文件夹,获取文件夹路径。
3. 创建保存修改后文件的目录路径。
4. 获取当前文件夹下的所有文件。
5. 遍历每个文件,获取文件名和扩展名。
6. 根据计数变量`i`生成新的文件名。
7. 使用`os.rename`函数将原文件移动到新的保存目录,并添加前缀。
`revise_name`函数的作用是将指定目录下的文件名进行修改,添加前缀。具体步骤如下:
1. 获取指定目录下的所有文件夹。
2. 遍历每个文件夹,获取文件夹路径。
3. 获取当前文件夹下的所有文件。
4. 遍历每个文件,获取文件名和扩展名。
5. 根据文件夹的名称和计数变量`i`生成新的文件名。
6. 使用`os.rename`函数将原文件移动到同一目录,并添加前缀。
最后,在主程序中调用了`revise_name`函数,并传入了参数`para`来执行文件名修改操作。
阅读全文