Ошибка перенаправления в скрипте Python - PullRequest
0 голосов
/ 01 октября 2010

У меня есть 2 сценария Python, которые являются main_menu.py и inputip.py.

Проблема возникает, когда я нажимаю «enter» для перенаправления на main_menu.py, когда моя функция завершает работу в iputip.py. Сценарий не позволяет мне перенаправить на main_menu.py, вместо этого он показывает эту ошибку в командной строке Windows:

Traceback (most recent call last):
  File "C:\python\main_menu.py", line 32, in ?
    execfile('C:\python\Inputip.py')
  File "C:\python\Inputip.py", line 11, in ?
    input ("\nSelect enter to proceed back to Main Menu\n")
  File "<string>", line 0

^ Ошибка синтаксиса: неожиданный EOF при разборе

Вот мои коды (main_menu.py):

def menu():
#print what options you have
print "Welcome to Simple Network Program"
print " "
print "Please enter a following option to proceed"
print " "
print "2) View Personal IP Address"
print " "
return input ("Select an Option here: ")
loop = 1
choice = 0
while loop == 1:
choice = menu()
if choice == 1:
    execfile('Inputip.py')
elif choice == 5:
    loop = 0
print "Thank you for using the Simple Network Program!"

Код (inputip.py):

#! /usr/bin/python

# To change this template, choose Tools | Templates
# and open the template in the editor.
import socket
import os
print ("\n\n"+socket.gethostbyname(socket.gethostname()))
input ("\nSelect enter to proceed back to Main Menu\n")

execfile('C:\python\main_menu.py')

Ошибка, похоже, указывает на execfile. Несколько советов по кодам было бы здорово. Спасибо!

Ответы [ 2 ]

1 голос
/ 01 октября 2010

Если вы не используете python 3.x (но ваш вопрос не помечен как таковой), не используйте ввод. Используйте raw_input вместо. Он вернет строки, поэтому сначала преобразуйте их в int или сравните строки. Э.Г.

x = raw_input("Choice")
if x == '1': 
    do_this()
0 голосов
/ 01 октября 2010

Я не думаю, что execfile () - хорошая практика. Попробуйте вместо этого использовать команду «import»:

if choice == 1:
    from Inputip import some_func
    some_func()

Затем Inputip должен содержать метод, который вы можете импортировать.

...