鱼C论坛

 找回密码
 立即注册
查看: 1918|回复: 6

[已解决]求大神帮忙看看代码要怎么优化,每次调用都多跑一次

[复制链接]
发表于 2017-3-12 23:37:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 LolitaNever 于 2017-3-12 23:39 编辑

import os

path1 = 'F:\\WorkSoftware\\YN_Client'
path2 = 'F:\\WorkSoftware\\YN_Client\\YiNuoServiceTemp'
path3 = 'F:\\WorkSoftware\\YN_Client\\YiNuoServiceTemp\\csharpphp\\webapp\\Config'

value = ''
value2 = ''


def change_name(value):
    prompt = int(input('请输入您要切换的环境:'))
    while True:
        if prompt == 1:
            if value == 'www':
                prompt = int(input('当前就是www环境,请重新输入您要切换的环境:'))
            else:
                change_name2(value,'www')
        elif prompt == 2:
            if value == 'dev':
                prompt = int(input('当前就是dev环境,请重新输入您要切换的环境:'))
            else:
                change_name2(value,'dev')
        elif prompt == 3:
            if value == 'test':
                prompt = int(input('当前就是test环境,请重新输入您要切换的环境:'))
            else:
                change_name2(value,'test')
        else:
               prompt = int(input('您的输入有误,请重新输入:'))


def change_name2(value,value2):
    os.chdir(path1)
    os.renames('SystemConfig.xml', 'SystemConfig_' + str(value) + '.xml')
    os.renames('SystemConfig_' + str(value2) + '.xml', 'SystemConfig.xml')
    os.chdir(path2)
    os.renames('MySQL','MySQL_' + str(value))
    os.renames('MySQL_' + str(value2),'MySQL')
    os.chdir(path3)
    os.renames('bootstrap.php','bootstrap_' + str(value) + '.php')
    os.renames('bootstrap_' + str(value2) + '.php', 'bootstrap.php')
    print(value2 + '环境切换成功,请确认关闭!')

def show_choice():
    print('1---->www环境')
    print('2---->Dev环境')
    print('3---->Test环境')
   
def juge_envi():
     
     if os.path.isfile(path1 + '\\SystemConfig_www.xml') == False:
         
          print('判断环境,当前是www环境!请按编号选择要切换的环境!')
          show_choice()
          change_name('www')
     elif os.path.isfile(path1 + '\\SystemConfig_dev.xml') == False:
         
          print('判断环境,当前是Dev环境!请按编号选择要切换的环境!')
          show_choice()
          change_name('dev')
     else:
         
          print('判断环境,当前是Test环境!请按编号选择要切换的环境!')
          show_choice()
          change_name('test')

juge_envi()
最佳答案
2017-3-13 09:28:32
你在change_name中的死循环中,每次调用完change_name2后没有break导致运行完change_name2之后会进入下一次循环中再次进入
你的死循环我也没有看出哪个地方会跳出循环体,你的程序应该不止多跑一次的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-13 09:28:32 | 显示全部楼层    本楼为最佳答案   
你在change_name中的死循环中,每次调用完change_name2后没有break导致运行完change_name2之后会进入下一次循环中再次进入
你的死循环我也没有看出哪个地方会跳出循环体,你的程序应该不止多跑一次的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-13 09:43:26 | 显示全部楼层

你确定是多跑一次嘛。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-13 10:04:04 | 显示全部楼层
lumber2388779 发表于 2017-3-13 09:28
你在change_name中的死循环中,每次调用完change_name2后没有break导致运行完change_name2之后会进入下一次 ...

之前在change_name2后break过,但是失败了,今天试了下,又可以了,谢谢了,大神!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-13 10:16:43 | 显示全部楼层
LolitaNever 发表于 2017-3-13 10:04
之前在change_name2后break过,但是失败了,今天试了下,又可以了,谢谢了,大神!

你最好设置多个选项可以退出循环,不然一定要切换环境后才会退出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-14 22:04:30 | 显示全部楼层
lumber2388779 发表于 2017-3-13 10:16
你最好设置多个选项可以退出循环,不然一定要切换环境后才会退出

比如说,增加一个选项 4 ,输入4的时候,就退出?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-14 22:17:42 | 显示全部楼层
LolitaNever 发表于 2017-3-14 22:04
比如说,增加一个选项 4 ,输入4的时候,就退出?

恩,就是这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-16 04:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表