从函数传递时,文件不会打开

时间:2013-11-11 03:12:13

标签: python-3.x file-handling

为什么不打开我放入函数的文件?当我将文件名直接插入主程序时打开,但是当我尝试将其传递给函数时则不会打开。它给了我一个FileNotFoundError

def get_valid_filename(prompt):
  '''Use prompt (a string) to ask the user to type the name of a file. If
  the file does not exist, keep asking until they give a valid filename.
  Return the name of that file.'''

  filename = input(prompt)
  if os.path.isfile(filename) == False:
    print ("That file does not exist.")
    filename = input(prompt)

  return filename

if __name__ == '__main__':

  prompt = 'enter the name of the file with unknown author:'
  mystery_filename = get_valid_filename(prompt)

  # readlines gives us the file as a list of strings each ending in '\n'
  text = open(mystery_filename, 'r').read()

  print (text)

1 个答案:

答案 0 :(得分:0)

get_valid_filename应如下所示:

def get_valid_filename(prompt):
    while True:
        filename = input(prompt):
        if os.path.exists(filename):
            return filename
        print('that file does not exist')