0

Итак, у меня была задана задача загрузить файл для программы шифрования, над которой я работаю, но я получаю сообщение об ошибке, что на консоль попало Unexpected unindent, но у меня есть не знаю, где это! Я предположил, что это глюк, попробовал переписать код, но все же я получаю ту же ошибку! Я любительский кодер, может ли кто-нибудь помочь мне?Неожиданная ошибка Unindent в Python

Это часть кода у меня возникают проблемы с:

def loadFile(): 
    try: 
     aFile = input('Plese enter a filename: \n') 
     myFile = open(aFile, 'r+') 
     global myFile 
     try: 
      print('Gathering file information...') 
      time.sleep(1) 
      print('The string you have chosen to encrypt is:') 
      print(myFile.read()) 
     finally: 
      myFile.close() 
    except IOError: 
     print('The file does not exist \n') 
     loadFile() 
+4

След * говорит * вы, где это происходит. Возможно, вы смешиваете вкладки и пробелы; заставите свой редактор использовать только пробелы (раскройте вкладки). –

+1

Кончик Python: используйте 'with open (aFile, 'r +') как myFile:' поэтому вам не нужно использовать 'try ... finally'. Кроме того, зачем делать myFile глобальным? Вы закрываете его внутри функции. Рекурсия не является хорошим способом обработки случая «IOError», вместо этого используйте цикл while, потому что у вас закончится рекурсивный стек, если файл никогда не создается. –

+0

Я сделал myFile глобальной переменной, поскольку я собирался получить доступ к ней за пределами функции, чтобы прочитать файл пользователя. Это всего лишь фрагмент моей программы, так как это единственный момент, с которым у меня серьезные проблемы. И мы, где учили использовать рекурсию в нашей ловушке ошибок, так как это вернет пользователя к началу. Когда я тестировал свою программу раньше, у меня не было проблем с IOError, и за пару дней до того, как эта программа работала нормально, без каких-либо неожиданных неустановлений или чего-то еще. Я не вносил никаких поправок в этот раздел, и он просто переставал работать. Вот что меня беспокоило ... – Python

ответ

0

вы можете использовать эту команду -

perl -i.bak -pe "s/\t/' 'x(8-pos()%8)/eg" file.py

здесь file.py Ваш файл имя. 8 - это отступ табуляции, который вы бы настроили в своем редакторе. В основном эта ошибка возникает из-за несоответствия между вкладками и пробелами. Таким образом, эта команда преобразует все вкладки с пробелами. Надеюсь, это сработает :)

+0

Использование Perl для решения проблем Python ха-ха. –

+0

@EugeneK - Я знаю, что это иронично, но это хорошо работает для меня :) – dragster

+0

Большое спасибо за ваш ответ, но у меня просто возникают проблемы с поиском места, где я бы разместил это в своем коде. Любая помощь? – Python