Откройте файл с предопределенной функцией (с методом) - PullRequest
0 голосов
/ 15 октября 2018

У меня есть предопределенная функция, которую я сейчас выполняю, чтобы проверить, является ли файл верным.Я хочу открыть этот файл в своей функции с помощью оператора ". Это то, что у меня сейчас есть:

def open_file():
'''Checks if the file is correct.'''
grab_file = True #Creates initial variable that checks if file is correct
while grab_file == True: #Loop initiates the check if true
    txt = input("Enter a file name: ") #Asks for file input
    try: 
        f = open(txt) #Tries to open the file
        return f #File returned as output
        grab_file = False #Stops the loop
    except: #File is invalid, prompts for retry
        print("Error. Please try again.")

def main():
'''Main function that runs through file and does delta calculations.'''
with open(open_file()) as f:
  f.readline()
  print_headers()
  pass

Не уверен, в чем именно заключается проблема, спасибо! Обратите внимание на вторую частьКод находится в своей основной функции и не является частью функции open_file.

Код выдает ошибку при попытке выполнить следующее:

  f.readline()
  date = f.readline()
  print_headers()

Это ошибка, которую я получаю, код после with open statement просто readline(

"TypeError: expected str, bytes or os.PathLike object, not _io.TextIOWrapper" 

1 Ответ

0 голосов
/ 14 ноября 2018

Ваша ошибка довольно легко исправить: просто замените

with open(open_file()) as f:

на

with open_file() as f:

, потому что вы уже открыли файл и вернули открытый файл в open_file () function.

Однако функция print_headers () не существует в стандартном python 3.x, поэтому я не совсем уверен, является ли это вашей собственной функцией или другой ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...