2016-11-26 14 views
0

Вот программа для копирования одного каталога на новый путь, но независимо от цели программы, я хотел бы знать, как просто выйти при нажатии enter вместо ввода ввода.Я хочу иметь выбор для выхода вместо ввода ввода

Это моя попытка использовать sys.exit. Когда в первом приглашении («Какой каталог копировать?»), Я просто нажимаю клавишу ввода (не вводя никаких данных в приглашение), и он все еще задает мне второй вопрос («И где я могу спросить?»)
Я хотел бы вместо этого выйти из программы после нажатия ввода в первом приглашении.

print "\n" * 5 
print "\033[1m" + "Be Careful." 
print "\033[0m" 
print "\n\tThis program will make changes to your directories.\n\tProceed with caution." 
print "\n" * 5 
print "\n" * 2 
print "Press enter at any prompt to exit." 
print "\n" * 5 



from sys import exit 

import shutil, os 
os.chdir('/Users/User/') 
butt = raw_input('Which dir you want copy??>> ') 
whr = raw_input('And to where may i ask??>> ') 
if butt == '' or whr == '': 
    exit(0) 
else: 
    shutil.copytree(butt, whr) 



import os 
inputfolder = raw_input('What\'s the path bro???>>>> ') 
for foldarName, subfolders, filnames in os.walk(inputfolder): 
    print('The current folder is ' + foldarName) 

    for sub in subfolders: 
     print('SUBFOLDER OF ' + foldarName + ': ' + sub) 
    for filna in filnames: 
     print('FILE INSIDE ' + foldarName + ': ' + filna) 

    print ('') 
+0

Привет Карлес. Я просто попробовал это и получаю точно такие же результаты. Это не приводит к его завершению, оно просто переходит к следующему приглашению. Спасибо – peer

+1

Вы не проверяете и не уходите до тех пор, пока не задаете * второй вопрос, почему это поведение вас удивило? – jonrsharpe

ответ

0

Python работает построчно, поэтому проверять, если переменная стыковой пуст до после не задавая второй вопрос не будет иметь нужного результата.

butt = raw_input('Which dir you want copy??>> ') 
if butt == '' 
    exit(0) 

whr = raw_input('And to where may i ask??>> ') 
if whr == '': 
    exit(0) 

shutil.copytree(butt, whr) # doesn't require an else statement 

Кроме того, более эффективный способ сделать это было бы

if not butt: 
    exit(0) 
+0

Perfect. Делает полный смысл. – peer