#python
#python
Вопрос:
Однако я создал код для вывода текстового файла в формате csv, когда я прошу пользователя ввести doc. номер, мой цикл попыток не будет проверять документ. Вместо этого он застрял, запрашивая имя файла. Однако, если я удалю первую if-функцию (if choice==»»), она будет работать, мне понадобятся эти if-функции позже. Код выглядит следующим образом
def menu2(choice1):
while True:
if choice1=="":
choice1=float(input("""33[1;36;48mNow you have the following choices:
0: Set new directory
1: Load data
5: Quit
33[1;37;48mPlease enter a number: """))
print()
elif choice1 == 0:
menu1()
elif choice1 == 1:
print("33[1;36;48mTo load the data, the data document name needs to be given with "".txt"" at the end")
choice2=input("""
33[1;37;48mPlease enter the name of the document: """)
print()
try:
pd.read_csv(choice2, sep=" ", header=None)
except:
print("Error, could not find data in directory. Files in directory is listed below:")
print(os.listdir(os.getcwd()))
continue
menu3("")
elif choice1 == 5:
print("Thanks for using the data analysis program, bye")
break
else:
print(red "Not a valid option, please try again" white)
print()
continue
prevData=pd.read_csv(choice2, sep=" ", header=None)
return prevData
Комментарии:
1. «цикл попыток»?
try
не запускает цикл.2. Я думаю, вам не мешало бы ознакомиться с несколькими базовыми руководствами по Python. Вы явно на вершине
if .. elif .. else
структуры, но это не золотой молоток, и не все гвозди. Попробуйте пошагово просматривать код построчно, отслеживая значения различных переменных и выясняя, почему код делает то, что он делает, и как вы хотите, чтобы этот поток изменился. Если есть какая-то конкретная часть, которую вы не понимаете, спросите об этом — общий вопрос «почему моя программа не работает» — не очень хороший вопрос, поскольку вы вряд ли получите нужный вам ответ.
Ответ №1:
создайте переменную loop = True
и измените while True
ее на while loop
. Внутри инструкции try, после чтения csv, вы можете сделать loop = False
, и это разорвет цикл.